12ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller/* GENERATED SOURCE. DO NOT MODIFY. */ 2f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert// © 2016 and later: Unicode, Inc. and others. 3f86f25d102340da66b9c7cb6b2d5ecdc0de43ecfFredrik Roubert// License & terms of use: http://www.unicode.org/copyright.html#License 42ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller/* 52ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller ******************************************************************************* 62ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Copyright (C) 1996-2014, International Business Machines Corporation and * 72ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * others. All Rights Reserved. * 82ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller ******************************************************************************* 92ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 102ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerpackage android.icu.util; 112ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerimport java.util.Date; 122ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerimport java.util.Locale; 132ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 142ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller/** 152ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * <code>JapaneseCalendar</code> is a subclass of <code>GregorianCalendar</code> 162ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * that numbers years and eras based on the reigns of the Japanese emperors. 172ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * The Japanese calendar is identical to the Gregorian calendar in all respects 182ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * except for the year and era. The ascension of each emperor to the throne 192ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * begins a new era, and the years of that era are numbered starting with the 202ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * year of ascension as year 1. 212ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * <p> 222ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Note that in the year of an imperial ascension, there are two possible sets 232ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * of year and era values: that for the old era and for the new. For example, a 242ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * new era began on January 7, 1989 AD. Strictly speaking, the first six days 252ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * of that year were in the Showa era, e.g. "January 6, 64 Showa", while the rest 262ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * of the year was in the Heisei era, e.g. "January 7, 1 Heisei". This class 272ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * handles this distinction correctly when computing dates. However, in lenient 282ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * mode either form of date is acceptable as input. 292ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * <p> 302ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * In modern times, eras have started on January 8, 1868 AD, Gregorian (Meiji), 312ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * July 30, 1912 (Taisho), December 25, 1926 (Showa), and January 7, 1989 (Heisei). Constants 322ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * for these eras, suitable for use in the <code>ERA</code> field, are provided 332ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * in this class. Note that the <em>number</em> used for each era is more or 342ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * less arbitrary. Currently, the era starting in 1053 AD is era #0; however this 352ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * may change in the future as we add more historical data. Use the predefined 362ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * constants rather than using actual, absolute numbers. 372ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * <p> 382ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * This class should not be subclassed.</p> 392ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * <p> 402ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * JapaneseCalendar usually should be instantiated using 412ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * {@link android.icu.util.Calendar#getInstance(ULocale)} passing in a <code>ULocale</code> 422ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * with the tag <code>"@calendar=japanese"</code>.</p> 432ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 442ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @see android.icu.util.GregorianCalendar 452ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @see android.icu.util.Calendar 462ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 472ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @author Laura Werner 482ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @author Alan Liu 492ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 502ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fullerpublic class JapaneseCalendar extends GregorianCalendar { 512ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // jdk1.4.2 serialver 522ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller private static final long serialVersionUID = -2977189902603704691L; 532ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 542ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller //------------------------------------------------------------------------- 552ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // Constructors... 562ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller //------------------------------------------------------------------------- 572ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 582ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 592ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constructs a default <code>JapaneseCalendar</code> using the current time 602ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * in the default time zone with the default locale. 612ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 622ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public JapaneseCalendar() { 632ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller super(); 642ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 652ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 662ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 672ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constructs a <code>JapaneseCalendar</code> based on the current time 682ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * in the given time zone with the default locale. 692ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param zone the given time zone. 702ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 712ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public JapaneseCalendar(TimeZone zone) { 722ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller super(zone); 732ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 742ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 752ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 762ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constructs a <code>JapaneseCalendar</code> based on the current time 772ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * in the default time zone with the given locale. 782ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param aLocale the given locale. 792ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 802ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public JapaneseCalendar(Locale aLocale) { 812ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller super(aLocale); 822ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 832ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 842ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 852ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constructs a <code>JapaneseCalendar</code> based on the current time 862ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * in the default time zone with the given locale. 872ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param locale the given ulocale. 882ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 892ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public JapaneseCalendar(ULocale locale) { 902ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller super(locale); 912ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 922ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 932ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 942ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constructs a <code>JapaneseCalendar</code> based on the current time 952ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * in the given time zone with the given locale. 962ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 972ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param zone the given time zone. 982ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 992ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param aLocale the given locale. 1002ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 1012ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public JapaneseCalendar(TimeZone zone, Locale aLocale) { 1022ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller super(zone, aLocale); 1032ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1042ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1052ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 1062ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constructs a <code>JapaneseCalendar</code> based on the current time 1072ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * in the given time zone with the given locale. 1082ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1092ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param zone the given time zone. 1102ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1112ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param locale the given ulocale. 1122ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 1132ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public JapaneseCalendar(TimeZone zone, ULocale locale) { 1142ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller super(zone, locale); 1152ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1162ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1172ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 1182ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constructs a <code>JapaneseCalendar</code> with the given date set 1192ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * in the default time zone with the default locale. 1202ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1212ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param date The date to which the new calendar is set. 1222ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 1232ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public JapaneseCalendar(Date date) { 1242ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller this(); 1252ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller setTime(date); 1262ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1272ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1282ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 1292ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constructs a <code>JapaneseCalendar</code> with the given date set 1302ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * in the default time zone with the default locale. 1312ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1322ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param era The imperial era used to set the calendar's {@link #ERA ERA} field. 1332ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Eras are numbered starting with the Tenki era, which 1342ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * began in 1053 AD Gregorian, as era zero. Recent 1352ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * eras can be specified using the constants 1362ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * {@link #MEIJI} (which started in 1868 AD), 1372ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * {@link #TAISHO} (1912 AD), 1382ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * {@link #SHOWA} (1926 AD), and 1392ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * {@link #HEISEI} (1989 AD). 1402ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1412ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param year The value used to set the calendar's {@link #YEAR YEAR} field, 1422ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * in terms of the era. 1432ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1442ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param month The value used to set the calendar's {@link #MONTH MONTH} field. 1452ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * The value is 0-based. e.g., 0 for January. 1462ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1472ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param date The value used to set the calendar's DATE field. 1482ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 1492ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public JapaneseCalendar(int era, int year, int month, int date) { 1502ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller super(year, month, date); 1512ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller set(ERA, era); 1522ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1532ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1542ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 1552ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constructs a <code>JapaneseCalendar</code> with the given date set 1562ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * in the default time zone with the default locale. 1572ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1582ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param year The value used to set the calendar's {@link #YEAR YEAR} field, 1592ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * in the era Heisei, the most current at the time this 1602ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * class was last updated. 1612ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1622ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param month The value used to set the calendar's {@link #MONTH MONTH} field. 1632ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * The value is 0-based. e.g., 0 for January. 1642ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1652ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param date The value used to set the calendar's {@link #DATE DATE} field. 1662ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 1672ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public JapaneseCalendar(int year, int month, int date) { 1682ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller super(year, month, date); 1692ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller set(ERA, CURRENT_ERA); 1702ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1712ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1722ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 1732ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constructs a <code>JapaneseCalendar</code> with the given date 1742ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * and time set for the default time zone with the default locale. 1752ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1762ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param year The value used to set the calendar's {@link #YEAR YEAR} time field, 1772ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * in the era Heisei, the most current at the time of this 1782ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * writing. 1792ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1802ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param month The value used to set the calendar's {@link #MONTH MONTH} time field. 1812ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * The value is 0-based. e.g., 0 for January. 1822ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1832ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param date The value used to set the calendar's {@link #DATE DATE} time field. 1842ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1852ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param hour The value used to set the calendar's {@link #HOUR_OF_DAY HOUR_OF_DAY} time field. 1862ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1872ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param minute The value used to set the calendar's {@link #MINUTE MINUTE} time field. 1882ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * 1892ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param second The value used to set the calendar's {@link #SECOND SECOND} time field. 1902ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 1912ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public JapaneseCalendar(int year, int month, int date, int hour, 1922ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int minute, int second) 1932ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller { 1942ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller super(year, month, date, hour, minute, second); 1952ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller set(ERA, CURRENT_ERA); 1962ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 1972ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1982ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller //------------------------------------------------------------------------- 1992ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 2002ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // Use 1970 as the default value of EXTENDED_YEAR 2012ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller private static final int GREGORIAN_EPOCH = 1970; 2022ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 2032ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 2042ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 2052ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller protected int handleGetExtendedYear() { 2062ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // EXTENDED_YEAR in JapaneseCalendar is a Gregorian year 2072ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // The default value of EXTENDED_YEAR is 1970 (Showa 45) 2082ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int year; 2092ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (newerField(EXTENDED_YEAR, YEAR) == EXTENDED_YEAR && 2102ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller newerField(EXTENDED_YEAR, ERA) == EXTENDED_YEAR) { 2112ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller year = internalGet(EXTENDED_YEAR, GREGORIAN_EPOCH); 2122ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } else { 2132ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // extended year is a gregorian year, where 1 = 1AD, 0 = 1BC, -1 = 2BC, etc 2142ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller year = internalGet(YEAR, 1) // pin to minimum of year 1 (first year) 2152ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller + ERAS[internalGet(ERA, CURRENT_ERA) * 3] // add gregorian starting year 2162ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller - 1; // Subtract one because year starts at 1 2172ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 2182ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return year; 2192ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 2202ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 2212ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 2222ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Called by handleComputeJulianDay. Returns the default month (0-based) for the year, 2232ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * taking year and era into account. Defaults to 0 (JANUARY) for Gregorian. 2242ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param extendedYear the extendedYear, as returned by handleGetExtendedYear 2252ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @return the default month 2262ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @see #MONTH 227836e6b40a94ec3fb7545a76cb072960442b7eee9Neil Fuller * @hide draft / provisional / internal are hidden on Android 2282ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 2292ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller protected int getDefaultMonthInYear(int extendedYear) 2302ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller { 2312ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int era = internalGet(ERA, CURRENT_ERA); 2322ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller //computeFields(status); // No need to compute fields here - expect the caller already did so. 2332ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 2342ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // Find out if we are at the edge of an era 2352ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if(extendedYear == ERAS[era*3]) { 2362ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return ERAS[(era*3)+1] // month.. 2372ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller -1; // return 0-based month 2382ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } else { 2392ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return super.getDefaultMonthInYear(extendedYear); 2402ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 2412ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 2422ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 2432ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 2442ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Called by handleComputeJulianDay. Returns the default day (1-based) for the month, 2452ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * taking currently-set year and era into account. Defaults to 1 for Gregorian. 2462ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param extendedYear the extendedYear, as returned by handleGetExtendedYear 2472ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @param month the month, as returned by getDefaultMonthInYear 2482ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @return the default day of the month 2492ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @see #DAY_OF_MONTH 250836e6b40a94ec3fb7545a76cb072960442b7eee9Neil Fuller * @hide draft / provisional / internal are hidden on Android 2512ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 2522ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller protected int getDefaultDayInMonth(int extendedYear, int month) { 2532ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int era = internalGet(ERA, CURRENT_ERA); 2542ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 2552ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if(extendedYear == ERAS[era*3]) { // if it is year 1.. 2562ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if(month == ((ERAS[(era*3)+1])-1)) { // if it is the emperor's first month.. 2572ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return ERAS[(era*3)+2]; // return the D_O_M of acession 2582ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 2592ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 2602ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 2612ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return super.getDefaultDayInMonth(extendedYear, month); 2622ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 2632ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 2642ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 2652ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 2662ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller protected void handleComputeFields(int julianDay) { 2672ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller super.handleComputeFields(julianDay); 2682ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int year = internalGet(EXTENDED_YEAR); 2692ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 2702ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int low = 0; 2712ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 2722ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // Short circuit for recent years. Most modern computations will 2732ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // occur in the current era and won't require the binary search. 2742ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // Note that if the year is == the current era year, then we use 2752ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // the binary search to handle the month/dom comparison. 2762ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (year > ERAS[ERAS.length - 3]) { 2772ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller low = CURRENT_ERA; 2782ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } else { 2792ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // Binary search 2802ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int high = ERAS.length / 3; 2812ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 2822ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller while (low < high - 1) { 2832ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int i = (low + high) / 2; 2842ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int diff = year - ERAS[i*3]; 2852ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 2862ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // If years are the same, then compare the months, and if those 2872ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // are the same, compare days of month. In the ERAS array 2882ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // months are 1-based for easier maintenance. 2892ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (diff == 0) { 2902ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller diff = internalGet(MONTH) - (ERAS[i*3 + 1] - 1); 2912ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (diff == 0) { 2922ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller diff = internalGet(DAY_OF_MONTH) - ERAS[i*3 + 2]; 2932ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 2942ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 2952ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (diff >= 0) { 2962ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller low = i; 2972ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } else { 2982ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller high = i; 2992ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 3002ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 3012ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 3022ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 3032ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // Now we've found the last era that starts before this date, so 3042ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // adjust the year to count from the start of that era. Note that 3052ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // all dates before the first era will fall into the first era by 3062ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // the algorithm. 3072ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller internalSet(ERA, low); 3082ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller internalSet(YEAR, year - ERAS[low*3] + 1); 3092ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 3102ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 3112ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller private static final int[] ERAS = { 3122ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // Gregorian date of each emperor's ascension 3132ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // Years are AD, months are 1-based. 3142ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // Year Month Day 3152ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 645, 6, 19, // Taika 3162ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 650, 2, 15, // Hakuchi 3172ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 672, 1, 1, // Hakuho 3182ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 686, 7, 20, // Shucho 3192ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 701, 3, 21, // Taiho 3202ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 704, 5, 10, // Keiun 3212ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 708, 1, 11, // Wado 3222ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 715, 9, 2, // Reiki 3232ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 717, 11, 17, // Yoro 3242ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 724, 2, 4, // Jinki 3252ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 729, 8, 5, // Tempyo 3262ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 749, 4, 14, // Tempyo-kampo 3272ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 749, 7, 2, // Tempyo-shoho 3282ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 757, 8, 18, // Tempyo-hoji 3292ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 765, 1, 7, // Tempho-jingo 3302ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 767, 8, 16, // Jingo-keiun 3312ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 770, 10, 1, // Hoki 3322ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 781, 1, 1, // Ten-o 3332ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 782, 8, 19, // Enryaku 3342ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 806, 5, 18, // Daido 3352ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 810, 9, 19, // Konin 3362ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 824, 1, 5, // Tencho 3372ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 834, 1, 3, // Showa 3382ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 848, 6, 13, // Kajo 3392ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 851, 4, 28, // Ninju 3402ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 854, 11, 30, // Saiko 3412ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 857, 2, 21, // Tennan 3422ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 859, 4, 15, // Jogan 3432ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 877, 4, 16, // Genkei 3442ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 885, 2, 21, // Ninna 3452ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 889, 4, 27, // Kampyo 3462ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 898, 4, 26, // Shotai 3472ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 901, 7, 15, // Engi 3482ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 923, 4, 11, // Encho 3492ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 931, 4, 26, // Shohei 3502ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 938, 5, 22, // Tengyo 3512ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 947, 4, 22, // Tenryaku 3522ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 957, 10, 27, // Tentoku 3532ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 961, 2, 16, // Owa 3542ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 964, 7, 10, // Koho 3552ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 968, 8, 13, // Anna 3562ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 970, 3, 25, // Tenroku 3572ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 973, 12, 20, // Ten-en 3582ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 976, 7, 13, // Jogen 3592ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 978, 11, 29, // Tengen 3602ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 983, 4, 15, // Eikan 3612ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 985, 4, 27, // Kanna 3622ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 987, 4, 5, // Ei-en 3632ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 989, 8, 8, // Eiso 3642ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 990, 11, 7, // Shoryaku 3652ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 995, 2, 22, // Chotoku 3662ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 999, 1, 13, // Choho 3672ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1004, 7, 20, // Kanko 3682ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1012, 12, 25, // Chowa 3692ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1017, 4, 23, // Kannin 3702ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1021, 2, 2, // Jian 3712ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1024, 7, 13, // Manju 3722ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1028, 7, 25, // Chogen 3732ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1037, 4, 21, // Choryaku 3742ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1040, 11, 10, // Chokyu 3752ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1044, 11, 24, // Kantoku 3762ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1046, 4, 14, // Eisho 3772ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1053, 1, 11, // Tengi 3782ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1058, 8, 29, // Kohei 3792ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1065, 8, 2, // Jiryaku 3802ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1069, 4, 13, // Enkyu 3812ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1074, 8, 23, // Shoho 3822ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1077, 11, 17, // Shoryaku 3832ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1081, 2, 10, // Eiho 3842ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1084, 2, 7, // Otoku 3852ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1087, 4, 7, // Kanji 3862ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1094, 12, 15, // Kaho 3872ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1096, 12, 17, // Eicho 3882ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1097, 11, 21, // Shotoku 3892ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1099, 8, 28, // Kowa 3902ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1104, 2, 10, // Choji 3912ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1106, 4, 9, // Kasho 3922ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1108, 8, 3, // Tennin 3932ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1110, 7, 13, // Ten-ei 3942ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1113, 7, 13, // Eikyu 3952ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1118, 4, 3, // Gen-ei 3962ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1120, 4, 10, // Hoan 3972ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1124, 4, 3, // Tenji 3982ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1126, 1, 22, // Daiji 3992ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1131, 1, 29, // Tensho 4002ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1132, 8, 11, // Chosho 4012ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1135, 4, 27, // Hoen 4022ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1141, 7, 10, // Eiji 4032ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1142, 4, 28, // Koji 4042ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1144, 2, 23, // Tenyo 4052ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1145, 7, 22, // Kyuan 4062ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1151, 1, 26, // Ninpei 4072ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1154, 10, 28, // Kyuju 4082ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1156, 4, 27, // Hogen 4092ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1159, 4, 20, // Heiji 4102ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1160, 1, 10, // Eiryaku 4112ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1161, 9, 4, // Oho 4122ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1163, 3, 29, // Chokan 4132ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1165, 6, 5, // Eiman 4142ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1166, 8, 27, // Nin-an 4152ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1169, 4, 8, // Kao 4162ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1171, 4, 21, // Shoan 4172ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1175, 7, 28, // Angen 4182ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1177, 8, 4, // Jisho 4192ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1181, 7, 14, // Yowa 4202ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1182, 5, 27, // Juei 4212ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1184, 4, 16, // Genryuku 4222ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1185, 8, 14, // Bunji 4232ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1190, 4, 11, // Kenkyu 4242ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1199, 4, 27, // Shoji 4252ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1201, 2, 13, // Kennin 4262ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1204, 2, 20, // Genkyu 4272ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1206, 4, 27, // Ken-ei 4282ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1207, 10, 25, // Shogen 4292ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1211, 3, 9, // Kenryaku 4302ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1213, 12, 6, // Kenpo 4312ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1219, 4, 12, // Shokyu 4322ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1222, 4, 13, // Joo 4332ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1224, 11, 20, // Gennin 4342ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1225, 4, 20, // Karoku 4352ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1227, 12, 10, // Antei 4362ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1229, 3, 5, // Kanki 4372ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1232, 4, 2, // Joei 4382ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1233, 4, 15, // Tempuku 4392ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1234, 11, 5, // Bunryaku 4402ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1235, 9, 19, // Katei 4412ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1238, 11, 23, // Ryakunin 4422ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1239, 2, 7, // En-o 4432ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1240, 7, 16, // Ninji 4442ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1243, 2, 26, // Kangen 4452ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1247, 2, 28, // Hoji 4462ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1249, 3, 18, // Kencho 4472ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1256, 10, 5, // Kogen 4482ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1257, 3, 14, // Shoka 4492ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1259, 3, 26, // Shogen 4502ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1260, 4, 13, // Bun-o 4512ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1261, 2, 20, // Kocho 4522ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1264, 2, 28, // Bun-ei 4532ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1275, 4, 25, // Kenji 4542ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1278, 2, 29, // Koan 4552ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1288, 4, 28, // Shoo 4562ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1293, 8, 55, // Einin 4572ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1299, 4, 25, // Shoan 4582ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1302, 11, 21, // Kengen 4592ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1303, 8, 5, // Kagen 4602ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1306, 12, 14, // Tokuji 4612ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1308, 10, 9, // Enkei 4622ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1311, 4, 28, // Ocho 4632ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1312, 3, 20, // Showa 4642ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1317, 2, 3, // Bunpo 4652ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1319, 4, 28, // Geno 4662ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1321, 2, 23, // Genkyo 4672ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1324, 12, 9, // Shochu 4682ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1326, 4, 26, // Kareki 4692ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1329, 8, 29, // Gentoku 4702ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1331, 8, 9, // Genko 4712ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1334, 1, 29, // Kemmu 4722ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1336, 2, 29, // Engen 4732ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1340, 4, 28, // Kokoku 4742ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1346, 12, 8, // Shohei 4752ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1370, 7, 24, // Kentoku 4762ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1372, 4, 1, // Bunch\u0169 4772ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1375, 5, 27, // Tenju 4782ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1379, 3, 22, // Koryaku 4792ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1381, 2, 10, // Kowa 4802ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1384, 4, 28, // Gench\u0169 4812ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1384, 2, 27, // Meitoku 4822ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1387, 8, 23, // Kakei 4832ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1389, 2, 9, // Koo 4842ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1390, 3, 26, // Meitoku 4852ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1394, 7, 5, // Oei 4862ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1428, 4, 27, // Shocho 4872ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1429, 9, 5, // Eikyo 4882ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1441, 2, 17, // Kakitsu 4892ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1444, 2, 5, // Bun-an 4902ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1449, 7, 28, // Hotoku 4912ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1452, 7, 25, // Kyotoku 4922ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1455, 7, 25, // Kosho 4932ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1457, 9, 28, // Choroku 4942ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1460, 12, 21, // Kansho 4952ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1466, 2, 28, // Bunsho 4962ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1467, 3, 3, // Onin 4972ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1469, 4, 28, // Bunmei 4982ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1487, 7, 29, // Chokyo 4992ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1489, 8, 21, // Entoku 5002ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1492, 7, 19, // Meio 5012ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1501, 2, 29, // Bunki 5022ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1504, 2, 30, // Eisho 5032ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1521, 8, 23, // Taiei 5042ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1528, 8, 20, // Kyoroku 5052ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1532, 7, 29, // Tenmon 5062ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1555, 10, 23, // Koji 5072ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1558, 2, 28, // Eiroku 5082ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1570, 4, 23, // Genki 5092ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1573, 7, 28, // Tensho 5102ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1592, 12, 8, // Bunroku 5112ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1596, 10, 27, // Keicho 5122ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1615, 7, 13, // Genwa 5132ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1624, 2, 30, // Kan-ei 5142ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1644, 12, 16, // Shoho 5152ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1648, 2, 15, // Keian 5162ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1652, 9, 18, // Shoo 5172ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1655, 4, 13, // Meiryaku 5182ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1658, 7, 23, // Manji 5192ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1661, 4, 25, // Kanbun 5202ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1673, 9, 21, // Enpo 5212ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1681, 9, 29, // Tenwa 5222ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1684, 2, 21, // Jokyo 5232ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1688, 9, 30, // Genroku 5242ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1704, 3, 13, // Hoei 5252ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1711, 4, 25, // Shotoku 5262ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1716, 6, 22, // Kyoho 5272ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1736, 4, 28, // Genbun 5282ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1741, 2, 27, // Kanpo 5292ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1744, 2, 21, // Enkyo 5302ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1748, 7, 12, // Kan-en 5312ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1751, 10, 27, // Horyaku 5322ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1764, 6, 2, // Meiwa 5332ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1772, 11, 16, // An-ei 5342ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1781, 4, 2, // Tenmei 5352ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1789, 1, 25, // Kansei 5362ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1801, 2, 5, // Kyowa 5372ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1804, 2, 11, // Bunka 5382ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1818, 4, 22, // Bunsei 5392ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1830, 12, 10, // Tenpo 5402ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1844, 12, 2, // Koka 5412ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1848, 2, 28, // Kaei 5422ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1854, 11, 27, // Ansei 5432ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1860, 3, 18, // Man-en 5442ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1861, 2, 19, // Bunkyu 5452ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1864, 2, 20, // Genji 5462ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1865, 4, 7, // Keio 5472ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1868, 9, 8, // Meiji 5482ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1912, 7, 30, // Taisho 5492ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1926, 12, 25, // Showa 5502ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 1989, 1, 8, // Heisei 5512ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller }; 5522ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 5532ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller //------------------------------------------------------------------------- 5542ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // Public constants for some of the recent eras that folks might use... 5552ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller //------------------------------------------------------------------------- 5562ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 5572ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // Constant for the current era. This must be regularly updated. 5582ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 5592ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 5602ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller static public final int CURRENT_ERA = (ERAS.length / 3) - 1; 5612ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 5622ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 5632ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constant for the era starting on Sept. 8, 1868 AD. 5642ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 5652ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller static public final int MEIJI = CURRENT_ERA - 3; 5662ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 5672ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 5682ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constant for the era starting on July 30, 1912 AD. 5692ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 5702ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller static public final int TAISHO = CURRENT_ERA - 2; 5712ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 5722ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 5732ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constant for the era starting on Dec. 25, 1926 AD. 5742ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 5752ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller static public final int SHOWA = CURRENT_ERA - 1; 5762ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 5772ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 5782ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Constant for the era starting on Jan. 7, 1989 AD. 5792ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 5802ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller static public final int HEISEI = CURRENT_ERA; 5812ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 5822ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 5832ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * Override GregorianCalendar. We should really handle YEAR_WOY and 5842ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * EXTENDED_YEAR here too to implement the 1..5000000 range, but it's 5852ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * not critical. 5862ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 5872ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller @SuppressWarnings("fallthrough") 5882ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller protected int handleGetLimit(int field, int limitType) { 5892ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller switch (field) { 5902ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller case ERA: 5912ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (limitType == MINIMUM || limitType == GREATEST_MINIMUM) { 5922ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return 0; 5932ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 5942ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return CURRENT_ERA; 5952ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller case YEAR: 5962ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller { 5972ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller switch (limitType) { 5982ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller case MINIMUM: 5992ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller case GREATEST_MINIMUM: 6002ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return 1; 6012ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller case LEAST_MAXIMUM: 6022ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return 1; 6032ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller case MAXIMUM: 6042ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return super.handleGetLimit(field, MAXIMUM) - ERAS[CURRENT_ERA*3]; 6052ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 6062ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller //Fall through to the default if not handled above 6072ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 6082ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller default: 6092ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return super.handleGetLimit(field, limitType); 6102ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 6112ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 6122ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 6132ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 6142ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * {@inheritDoc} 6152ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 6162ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public String getType() { 6172ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return "japanese"; 6182ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 6192ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 6202ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 6212ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * {@inheritDoc} 6222ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * @deprecated This API is ICU internal only. 62393cf604e9dd0525f15bc0a7450b2a35f3884c298Neil Fuller * @hide original deprecated declaration 624836e6b40a94ec3fb7545a76cb072960442b7eee9Neil Fuller * @hide draft / provisional / internal are hidden on Android 6252ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 6262ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller @Deprecated 6272ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public boolean haveDefaultCentury() { 6282ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return false; 6292ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 6302ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 6312ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller /** 6322ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller * {@inheritDoc} 6332ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller */ 6342ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller public int getActualMaximum(int field) { 6352ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (field == YEAR) { 6362ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int era = get(Calendar.ERA); 6372ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (era == CURRENT_ERA) { 6382ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // TODO: Investigate what value should be used here - revisit after 4.0. 6392ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return handleGetLimit(YEAR, MAXIMUM); 6402ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } else { 6412ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int nextEraYear = ERAS[(era+1)*3]; 6422ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int nextEraMonth = ERAS[(era+1)*3 + 1]; 6432ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int nextEraDate = ERAS[(era+1)*3 + 2]; 6442ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 6452ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller int maxYear = nextEraYear - ERAS[era*3] + 1; // 1-base 6462ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller if (nextEraMonth == 1 && nextEraDate == 1) { 6472ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller // Substract 1, because the next era starts at Jan 1 6482ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller maxYear--; 6492ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 6502ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return maxYear; 6512ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 6522ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 6532ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller return super.getActualMaximum(field); 6542ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller } 6552ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller 6562ae130017183d2f66d55bf0ca51f8da3294644fdNeil Fuller} 657