mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8269124: Update java.time to use switch expressions (part II)
Reviewed-by: dfuchs, vtewari, aefimov, iris, lancea, naoto
This commit is contained in:
parent
675a9520b2
commit
8a7b380ebb
16 changed files with 322 additions and 370 deletions
|
@ -444,20 +444,19 @@ public final class JapaneseDate
|
|||
|
||||
@Override
|
||||
public ValueRange range(TemporalField field) {
|
||||
if (field instanceof ChronoField) {
|
||||
if (field instanceof ChronoField chronoField) {
|
||||
if (isSupported(field)) {
|
||||
ChronoField f = (ChronoField) field;
|
||||
switch (f) {
|
||||
case DAY_OF_MONTH: return ValueRange.of(1, lengthOfMonth());
|
||||
case DAY_OF_YEAR: return ValueRange.of(1, lengthOfYear());
|
||||
case YEAR_OF_ERA: {
|
||||
return switch (chronoField) {
|
||||
case DAY_OF_MONTH -> ValueRange.of(1, lengthOfMonth());
|
||||
case DAY_OF_YEAR -> ValueRange.of(1, lengthOfYear());
|
||||
case YEAR_OF_ERA -> {
|
||||
Calendar jcal = Calendar.getInstance(JapaneseChronology.LOCALE);
|
||||
jcal.set(Calendar.ERA, era.getValue() + JapaneseEra.ERA_OFFSET);
|
||||
jcal.set(yearOfEra, isoDate.getMonthValue() - 1, isoDate.getDayOfMonth());
|
||||
return ValueRange.of(1, jcal.getActualMaximum(Calendar.YEAR));
|
||||
yield ValueRange.of(1, jcal.getActualMaximum(Calendar.YEAR));
|
||||
}
|
||||
}
|
||||
return getChronology().range(f);
|
||||
default -> getChronology().range(chronoField);
|
||||
};
|
||||
}
|
||||
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue