private CalendarQuarter( int year, Quarter quarter ) { super(); if ((year < GregorianMath.MIN_YEAR) || (year > GregorianMath.MAX_YEAR)) { throw new IllegalArgumentException("Year out of bounds: " + year); } else if (quarter == null) { throw new NullPointerException("Missing quarter of calendar year."); } this.year = year; this.quarter = quarter; PlainDate date = PlainDate.of(this.year, 1, 1).with(QUARTER_OF_YEAR, quarter); this.start = Boundary.ofClosed(date); this.end = Boundary.ofClosed(date.with(PlainDate.DAY_OF_QUARTER.maximized())); }