325 @Override
326 public boolean isLeapYear(long prolepticYear) {
327 return IsoChronology.INSTANCE.isLeapYear(prolepticYear - YEARS_DIFFERENCE);
328 }
329
330 @Override
331 public int prolepticYear(Era era, int yearOfEra) {
332 if (era instanceof ThaiBuddhistEra == false) {
333 throw new ClassCastException("Era must be BuddhistEra");
334 }
335 return (era == ThaiBuddhistEra.BE ? yearOfEra : 1 - yearOfEra);
336 }
337
338 @Override
339 public ThaiBuddhistEra eraOf(int eraValue) {
340 return ThaiBuddhistEra.of(eraValue);
341 }
342
343 @Override
344 public List<Era> eras() {
345 return Arrays.<Era>asList(ThaiBuddhistEra.values());
346 }
347
348 //-----------------------------------------------------------------------
349 @Override
350 public ValueRange range(ChronoField field) {
351 switch (field) {
352 case PROLEPTIC_MONTH: {
353 ValueRange range = PROLEPTIC_MONTH.range();
354 return ValueRange.of(range.getMinimum() + YEARS_DIFFERENCE * 12L, range.getMaximum() + YEARS_DIFFERENCE * 12L);
355 }
356 case YEAR_OF_ERA: {
357 ValueRange range = YEAR.range();
358 return ValueRange.of(1, -(range.getMinimum() + YEARS_DIFFERENCE) + 1, range.getMaximum() + YEARS_DIFFERENCE);
359 }
360 case YEAR: {
361 ValueRange range = YEAR.range();
362 return ValueRange.of(range.getMinimum() + YEARS_DIFFERENCE, range.getMaximum() + YEARS_DIFFERENCE);
363 }
364 }
365 return field.range();
|
325 @Override
326 public boolean isLeapYear(long prolepticYear) {
327 return IsoChronology.INSTANCE.isLeapYear(prolepticYear - YEARS_DIFFERENCE);
328 }
329
330 @Override
331 public int prolepticYear(Era era, int yearOfEra) {
332 if (era instanceof ThaiBuddhistEra == false) {
333 throw new ClassCastException("Era must be BuddhistEra");
334 }
335 return (era == ThaiBuddhistEra.BE ? yearOfEra : 1 - yearOfEra);
336 }
337
338 @Override
339 public ThaiBuddhistEra eraOf(int eraValue) {
340 return ThaiBuddhistEra.of(eraValue);
341 }
342
343 @Override
344 public List<Era> eras() {
345 return List.of(ThaiBuddhistEra.values());
346 }
347
348 //-----------------------------------------------------------------------
349 @Override
350 public ValueRange range(ChronoField field) {
351 switch (field) {
352 case PROLEPTIC_MONTH: {
353 ValueRange range = PROLEPTIC_MONTH.range();
354 return ValueRange.of(range.getMinimum() + YEARS_DIFFERENCE * 12L, range.getMaximum() + YEARS_DIFFERENCE * 12L);
355 }
356 case YEAR_OF_ERA: {
357 ValueRange range = YEAR.range();
358 return ValueRange.of(1, -(range.getMinimum() + YEARS_DIFFERENCE) + 1, range.getMaximum() + YEARS_DIFFERENCE);
359 }
360 case YEAR: {
361 ValueRange range = YEAR.range();
362 return ValueRange.of(range.getMinimum() + YEARS_DIFFERENCE, range.getMaximum() + YEARS_DIFFERENCE);
363 }
364 }
365 return field.range();
|