(
int year,
int dayOfYear,
Weekday weekday
)
| 2241 | } |
| 2242 | |
| 2243 | private static PlainDate ofYearDay( |
| 2244 | int year, |
| 2245 | int dayOfYear, |
| 2246 | Weekday weekday |
| 2247 | ) { |
| 2248 | |
| 2249 | if (dayOfYear < 1) { |
| 2250 | throw new IllegalArgumentException( |
| 2251 | "Day of year out of range: " + dayOfYear); |
| 2252 | } else if (dayOfYear <= 31) { |
| 2253 | return PlainDate.of(year, 1, dayOfYear); |
| 2254 | } |
| 2255 | |
| 2256 | int[] table = ( |
| 2257 | GregorianMath.isLeapYear(year) |
| 2258 | ? DAY_OF_LEAP_YEAR_PER_MONTH |
| 2259 | : DAY_OF_YEAR_PER_MONTH); |
| 2260 | |
| 2261 | for (int i = (dayOfYear > table[6] ? 7 : 1); i < 12; i++) { |
| 2262 | if (dayOfYear <= table[i]) { |
| 2263 | int dom = dayOfYear - table[i - 1]; |
| 2264 | return PlainDate.create(year, i + 1, dom, weekday, false); |
| 2265 | } |
| 2266 | } |
| 2267 | |
| 2268 | throw new IllegalArgumentException( |
| 2269 | "Day of year out of range: " + dayOfYear); |
| 2270 | |
| 2271 | } |
| 2272 | |
| 2273 | private static PlainDate create( |
| 2274 | int year, |
no test coverage detected