test/java/time/test/java/time/chrono/TestJapaneseChronoImpl.java
Print this page
*** 59,74 ****
--- 59,77 ----
import static org.testng.Assert.assertEquals;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.OffsetDateTime;
+ import java.time.ZonedDateTime;
import java.time.ZoneOffset;
import java.time.chrono.JapaneseChronology;
+ import java.time.chrono.JapaneseEra;
import java.time.chrono.JapaneseDate;
import java.time.temporal.ChronoField;
import java.time.temporal.ChronoUnit;
import java.util.Calendar;
+ import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.TimeZone;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
*** 83,93 ****
* Range of years to check consistency with java.util.Calendar
*/
@DataProvider(name="RangeVersusCalendar")
Object[][] provider_rangeVersusCalendar() {
return new Object[][] {
! {LocalDate.of(1868, 1, 1), LocalDate.of(2100, 1, 1)},
};
}
//-----------------------------------------------------------------------
// Verify Japanese Calendar matches java.util.Calendar for range
--- 86,96 ----
* Range of years to check consistency with java.util.Calendar
*/
@DataProvider(name="RangeVersusCalendar")
Object[][] provider_rangeVersusCalendar() {
return new Object[][] {
! {LocalDate.of(1873, 1, 1), LocalDate.of(2100, 1, 1)},
};
}
//-----------------------------------------------------------------------
// Verify Japanese Calendar matches java.util.Calendar for range
*** 116,121 ****
--- 119,152 ----
jDate = jDate.plus(1, ChronoUnit.DAYS);
cal.add(Calendar.DAY_OF_MONTH, 1);
}
}
+ //-----------------------------------------------------------------------
+ // Verify Japanese Calendar matches java.util.Calendar for number of days
+ // in years 1 and 2.
+ //-----------------------------------------------------------------------
+ @Test
+ public void test_dayOfYearVsCalendar() {
+ Locale locale = Locale.forLanguageTag("ja-JP-u-ca-japanese");
+ Calendar cal = java.util.Calendar.getInstance(locale);
+
+ for (JapaneseEra era : JapaneseEra.values()) {
+ for (int year : new int[] {6, 7}) {
+ JapaneseDate jd = JapaneseChronology.INSTANCE.dateYearDay(era, year, 1);
+ OffsetDateTime jodt = OffsetDateTime.of(LocalDate.from(jd), LocalTime.MIN, ZoneOffset.UTC);
+ long millis = jodt.toInstant().toEpochMilli();
+ cal.setTimeZone(TimeZone.getTimeZone("GMT+00"));
+ cal.setTimeInMillis(millis);
+
+ assertEquals(jd.get(ChronoField.DAY_OF_YEAR), cal.get(Calendar.DAY_OF_YEAR),
+ "different DAY_OF_YEAR values in " + era + ", year: " + year);
+ assertEquals(jd.range(ChronoField.DAY_OF_YEAR).getMaximum(), cal.getActualMaximum(Calendar.DAY_OF_YEAR),
+ "different maximum for DAY_OF_YEAR in " + era + ", year: " + year);
+ assertEquals(jd.range(ChronoField.DAY_OF_YEAR).getMinimum(), cal.getActualMinimum(Calendar.DAY_OF_YEAR),
+ "different minimum for DAY_OF_YEAR in " + era + ", year: " + year);
+ }
+ }
+
+ }
+
}