Class HistoricChronology

java.lang.Object
javax.time.calendar.Chronology
javax.time.i18n.HistoricChronology
All Implemented Interfaces:
Serializable, Calendrical

public final class HistoricChronology extends Chronology implements Serializable
The Historic calendar system.

HistoricChronology defines the rules of the Historic calendar system. The Historic calendar has twelve months of 30 days followed by an additional period of 5 or 6 days, modelled as the thirteenth month in this implementation.

Years are measured in the 'Era of the Martyrs'. 0001-01-01 (Historic) equals 0284-08-29 (ISO). The supported range is from Historic year 1 to year 9999 (inclusive).

HistoricChronology is immutable and thread-safe.

See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      A serialization identifier for this class.
      See Also:
    • STANDARD_MONTH_START

      private static final int[] STANDARD_MONTH_START
      The start of months in a standard year.
    • LEAP_MONTH_START

      private static final int[] LEAP_MONTH_START
      The start of months in a leap year.
    • cutover

      private final LocalDate cutover
      The cutover from Julian to Gregorian.
    • YEARS

      private static final PeriodUnit YEARS
      Period unit for years.
    • MONTHS

      private static final PeriodUnit MONTHS
      Period unit for months.
  • Constructor Details

    • HistoricChronology

      private HistoricChronology(LocalDate cutover)
      Restrictive constructor.
  • Method Details

    • cutoverAt

      public static HistoricChronology cutoverAt(LocalDate cutover)
      Obtains an instance of HistoricChronology specifying the cutover date when the Gregorian/ISO calendar system was first used.
      Parameters:
      cutover - the cutover date, not null
      Returns:
      a HistoricChronology, never null
    • standardCutover

      public static HistoricChronology standardCutover()
      Obtains an instance of HistoricChronology using the standard cutover date of 1582-10-15.
      Returns:
      a HistoricChronology, never null
    • checkNotNull

      static void checkNotNull(Object object, String errorMessage)
      Validates that the input value is not null.
      Parameters:
      object - the object to check
      errorMessage - the error to throw
      Throws:
      NullPointerException - if the object is null
    • getDayOfYear

      int getDayOfYear(HistoricDate date)
      Calculates the day-of-year from a date.
      Parameters:
      date - the date to use, not null
      Returns:
      the day-of-year
    • getDateFromDayOfYear

      HistoricDate getDateFromDayOfYear(int year, int dayOfYear)
      Calculates the date from a year and day-of-year.
      Parameters:
      year - the year, valid
      dayOfYear - the day-of-year, valid
      Returns:
      the date, never null
    • isLeapYear

      public boolean isLeapYear(int year)
      Checks if the specified year is a leap year.

      A year is leap if the remainder after division by four equals three. This method does not validate the year passed in, and only has a well-defined result for years in the supported range.

      Parameters:
      year - the year to check, not validated for range
      Returns:
      true if the year is a leap year
    • getCutover

      public LocalDate getCutover()
      Gets the cutover date of the chronology.
      Returns:
      the cutover date of the chronology, never null
    • getName

      public String getName()
      Gets the name of the chronology.
      Specified by:
      getName in class Chronology
      Returns:
      the name of the chronology, never null
    • eraRule

      public DateTimeFieldRule<HistoricEra> eraRule()
      Gets the rule for the year field in the Historic chronology.
      Returns:
      the rule for the year field, never null
    • yearOfEraRule

      public DateTimeFieldRule<Integer> yearOfEraRule()
      Gets the rule for the year field in the Historic chronology.
      Returns:
      the rule for the year field, never null
    • yearRule

      public DateTimeFieldRule<Integer> yearRule()
      Gets the rule for the year field in the Historic chronology.
      Returns:
      the rule for the year field, never null
    • monthOfYearRule

      public DateTimeFieldRule<MonthOfYear> monthOfYearRule()
      Gets the rule for the month-of-year field in the Historic chronology.
      Returns:
      the rule for the month-of-year field, never null
    • dayOfMonthRule

      public DateTimeFieldRule<Integer> dayOfMonthRule()
      Gets the rule for the day-of-month field in the Historic chronology.
      Returns:
      the rule for the day-of-month field, never null
    • dayOfYearRule

      public DateTimeFieldRule<Integer> dayOfYearRule()
      Gets the rule for the day-of-year field in the Historic chronology.
      Returns:
      the rule for the day-of-year field, never null
    • dayOfWeekRule

      public DateTimeFieldRule<DayOfWeek> dayOfWeekRule()
      Gets the rule for the day-of-week field in the Historic chronology.
      Returns:
      the rule for the day-of-week field, never null
    • periodEras

      public static PeriodUnit periodEras()
      Gets the period unit for eras.

      The period unit defines the concept of a period of an era.

      This is a basic unit and has no equivalent period. The estimated duration is equal to 2,000,000,000 years. This is equivalent to the ISO era period unit.

      See eraRule() for the main date-time field.

      Returns:
      the period unit for years, never null
    • periodYears

      public static PeriodUnit periodYears()
      Gets the period unit for years.

      The period unit defines the concept of a period of a year. This has an estimated duration equal to 365.25 days.

      See yearRule() for the main date-time field.

      Returns:
      the period unit for years, never null
    • periodMonths

      public static PeriodUnit periodMonths()
      Gets the period unit for months.

      The period unit defines the concept of a period of a month. Historic months are typically 30 days long, except for the 13th month which is 5 or 6 days long. The rule uses an estimated duration of 29.5 days.

      See monthOfYearRule() for the main date-time field.

      Returns:
      the period unit for months, never null
    • periodWeeks

      public static PeriodUnit periodWeeks()
      Gets the period unit for weeks.

      The period unit defines the concept of a period of a week. This is equivalent to the ISO weeks period unit.

      Returns:
      the period unit for weeks, never null
    • periodDays

      public static PeriodUnit periodDays()
      Gets the period unit for days.

      The period unit defines the concept of a period of a day. This is equivalent to the ISO days period unit.

      See dayOfMonthRule() for the main date-time field.

      Returns:
      the period unit for days, never null