java.lang.Object | ||||
↳ | org.joda.time.Chronology | |||
↳ | org.joda.time.chrono.BaseChronology | |||
↳ | org.joda.time.chrono.AssembledChronology | |||
↳ | org.joda.time.chrono.IslamicChronology |
Implements the Islamic, or Hijri, calendar system using arithmetic rules.
This calendar is a lunar calendar with a shorter year than ISO. Year 1 in the Islamic calendar began on July 16, 622 CE (Julian), thus Islamic years do not begin at the same time as Julian years. This chronology is not proleptic, as it does not allow dates before the first Islamic year.
There are two basic forms of the Islamic calendar, the tabular and the observed. The observed form cannot easily be used by computers as it relies on human observation of the new moon. The tabular calendar, implemented here, is an arithmetical approximation of the observed form that follows relatively simple rules.
The tabular form of the calendar defines 12 months of alternately 30 and 29 days. The last month is extended to 30 days in a leap year. Leap years occur according to a 30 year cycle. There are four recognised patterns of leap years in the 30 year cycle:
Years 2, 5, 7, 10, 13, 15, 18, 21, 24, 26 & 29 - 15-based, used by Microsoft Years 2, 5, 7, 10, 13, 16, 18, 21, 24, 26 & 29 - 16-based, most commonly used Years 2, 5, 8, 10, 13, 16, 19, 21, 24, 27 & 29 - Indian Years 2, 5, 8, 11, 13, 16, 19, 21, 24, 27 & 30 - Habash al-HasibYou can select which pattern to use via the factory methods, or use the default (16-based).
This implementation defines a day as midnight to midnight exactly as per the ISO chronology. This correct start of day is at sunset on the previous day, however this cannot readily be modelled and has been ignored.
IslamicChronology is thread-safe and immutable.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
IslamicChronology.LeapYearPatternType | Opaque object describing a leap year pattern for the Islamic Chronology. |
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
int | AH | Constant value for 'Anno Hegirae', equivalent to the value returned for AD/CE. |
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
LEAP_YEAR_15_BASED | Leap year 15-based pattern. | ||||||||||
LEAP_YEAR_16_BASED | Leap year 16-based pattern. | ||||||||||
LEAP_YEAR_HABASH_AL_HASIB | Leap year Habash al-Hasib pattern. | ||||||||||
LEAP_YEAR_INDIAN | Leap year Indian pattern. |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Checks if this chronology instance equals another.
| |||||||||||
Returns a datetime millisecond instant, formed from the given year,
month, day, and millisecond values.
| |||||||||||
Returns a datetime millisecond instant, formed from the given year,
month, day, hour, minute, second, and millisecond values.
| |||||||||||
Gets an instance of the IslamicChronology in the default time zone.
| |||||||||||
Gets an instance of the IslamicChronology in the given time zone.
| |||||||||||
Gets an instance of the IslamicChronology in the given time zone.
| |||||||||||
Gets an instance of the IslamicChronology.
| |||||||||||
Gets the leap year pattern type.
| |||||||||||
Returns the DateTimeZone that this Chronology operates in, or null if
unspecified.
| |||||||||||
A suitable hash code for the chronology.
| |||||||||||
Gets a debugging toString.
| |||||||||||
Gets the Chronology in the UTC time zone.
| |||||||||||
Gets the Chronology in a specific time zone.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Invoked by the constructor and after deserialization to allow subclasses
to define all of its supported fields.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() |
Constant value for 'Anno Hegirae', equivalent to the value returned for AD/CE.
Leap year 15-based pattern.
Leap year 16-based pattern.
Leap year Habash al-Hasib pattern.
Leap year Indian pattern.
Checks if this chronology instance equals another.
obj | the object to compare to |
---|
Returns a datetime millisecond instant, formed from the given year, month, day, and millisecond values. The set of given values must refer to a valid datetime, or else an IllegalArgumentException is thrown.
The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.
year | year to use |
---|---|
monthOfYear | month to use |
dayOfMonth | day of month to use |
millisOfDay | millisecond to use |
IllegalArgumentException |
---|
Returns a datetime millisecond instant, formed from the given year, month, day, hour, minute, second, and millisecond values. The set of given values must refer to a valid datetime, or else an IllegalArgumentException is thrown.
The default implementation calls upon separate DateTimeFields to determine the result. Subclasses are encouraged to provide a more efficient implementation.
year | year to use |
---|---|
monthOfYear | month to use |
dayOfMonth | day of month to use |
hourOfDay | hour to use |
minuteOfHour | minute to use |
secondOfMinute | second to use |
millisOfSecond | millisecond to use |
IllegalArgumentException |
---|
Gets an instance of the IslamicChronology in the default time zone.
Gets an instance of the IslamicChronology in the given time zone.
zone | the time zone to get the chronology in, null is default |
---|---|
leapYears | the type defining the leap year pattern |
Gets an instance of the IslamicChronology in the given time zone.
zone | the time zone to get the chronology in, null is default |
---|
Gets an instance of the IslamicChronology. The time zone of the returned instance is UTC.
Gets the leap year pattern type.
Returns the DateTimeZone that this Chronology operates in, or null if unspecified.
A suitable hash code for the chronology.
Gets the Chronology in the UTC time zone.
Gets the Chronology in a specific time zone.
zone | the zone to get the chronology in, null is default |
---|
Invoked by the constructor and after deserialization to allow subclasses to define all of its supported fields. All unset fields default to unsupported instances.
fields | container of fields |
---|