javax.time.i18n
Class HistoricChronology

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

public final class HistoricChronology
extends Chronology
implements java.io.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.

Author:
Stephen Colebourne
See Also:
Serialized Form

Method Summary
static HistoricChronology cutoverAt(LocalDate cutover)
          Obtains an instance of HistoricChronology specifying the cutover date when the Gregorian/ISO calendar system was first used.
 DateTimeRule dayOfMonthRule()
          Gets the rule for the day-of-month field in the Historic chronology.
 DateTimeRule dayOfWeekRule()
          Gets the rule for the day-of-week field in the Historic chronology.
 DateTimeRule dayOfYearRule()
          Gets the rule for the day-of-year field in the Historic chronology.
 DateTimeRule eraRule()
          Gets the rule for the year field in the Historic chronology.
 LocalDate getCutover()
          Gets the cutover date of the chronology.
 java.lang.String getName()
          Gets the name of the chronology.
 boolean isLeapYear(int year)
          Checks if the specified year is a leap year.
 DateTimeRule monthOfYearRule()
          Gets the rule for the month-of-year field in the Historic chronology.
static PeriodUnit periodDays()
          Gets the period unit for days.
static PeriodUnit periodEras()
          Gets the period unit for eras.
static PeriodUnit periodMonths()
          Gets the period unit for months.
static PeriodUnit periodWeeks()
          Gets the period unit for weeks.
static PeriodUnit periodYears()
          Gets the period unit for years.
static HistoricChronology standardCutover()
          Obtains an instance of HistoricChronology using the standard cutover date of 1582-10-15.
 DateTimeRule yearOfEraRule()
          Gets the rule for the year field in the Historic chronology.
 DateTimeRule yearRule()
          Gets the rule for the year field in the Historic chronology.
 
Methods inherited from class javax.time.calendar.Chronology
get, rule, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

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, not null

standardCutover

public static HistoricChronology standardCutover()
Obtains an instance of HistoricChronology using the standard cutover date of 1582-10-15.

Returns:
a HistoricChronology, not 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, not null

getName

public java.lang.String getName()
Gets the name of the chronology.

Specified by:
getName in class Chronology
Returns:
the name of the chronology, not null

eraRule

public DateTimeRule eraRule()
Gets the rule for the year field in the Historic chronology.

Returns:
the rule for the year field, not null

yearOfEraRule

public DateTimeRule yearOfEraRule()
Gets the rule for the year field in the Historic chronology.

Returns:
the rule for the year field, not null

yearRule

public DateTimeRule yearRule()
Gets the rule for the year field in the Historic chronology.

Returns:
the rule for the year field, not null

monthOfYearRule

public DateTimeRule monthOfYearRule()
Gets the rule for the month-of-year field in the Historic chronology.

Returns:
the rule for the month-of-year field, not null

dayOfMonthRule

public DateTimeRule dayOfMonthRule()
Gets the rule for the day-of-month field in the Historic chronology.

Returns:
the rule for the day-of-month field, not null

dayOfYearRule

public DateTimeRule dayOfYearRule()
Gets the rule for the day-of-year field in the Historic chronology.

Returns:
the rule for the day-of-year field, not null

dayOfWeekRule

public DateTimeRule dayOfWeekRule()
Gets the rule for the day-of-week field in the Historic chronology.

Returns:
the rule for the day-of-week field, not 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, not 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, not 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, not 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, not 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, not null