IslamicCalendar
public
class
IslamicCalendar
extends Calendar
IslamicCalendar
is a subclass of Calendar
that that implements the Islamic civil and religious calendars. It
is used as the civil calendar in most of the Arab world and the
liturgical calendar of the Islamic faith worldwide. This calendar
is also known as the "Hijri" calendar, since it starts at the time
of Mohammed's emigration (or "hijra") to Medinah on Thursday,
July 15, 622 AD (Julian).
The Islamic calendar is strictly lunar, and thus an Islamic year of twelve
lunar months does not correspond to the solar year used by most other
calendar systems, including the Gregorian. An Islamic year is, on average,
about 354 days long, so each successive Islamic year starts about 11 days
earlier in the corresponding Gregorian year.
Each month of the calendar starts when the new moon's crescent is visible
at sunset. However, in order to keep the time fields in this class
synchronized with those of the other calendars and with local clock time,
we treat days and months as beginning at midnight,
roughly 6 hours after the corresponding sunset.
There are three main variants of the Islamic calendar in existence. The first
is the civil calendar, which uses a fixed cycle of alternating 29-
and 30-day months, with a leap day added to the last month of 11 out of
every 30 years. This calendar is easily calculated and thus predictable in
advance, so it is used as the civil calendar in a number of Arab countries.
This is the default behavior of a newly-created IslamicCalendar
object.
The Islamic religious calendar and Saudi Arabia's Umm al-Qura
calendar, however, are based on the observation of the crescent moon.
It is thus affected by the position at which the
observations are made, seasonal variations in the time of sunset, the
eccentricities of the moon's orbit, and even the weather at the observation
site. This makes it impossible to calculate in advance, and it causes the
start of a month in the religious calendar to differ from the civil calendar
by up to three days.
Using astronomical calculations for the position of the sun and moon, the
moon's illumination, and other factors, it is possible to determine the start
of a lunar month with a fairly high degree of certainty. However, these
calculations are extremely complicated and thus slow, so most algorithms,
including the one used here, are only approximations of the true astronomical
calculations. At present, the approximations used in this class are fairly
simplistic; they will be improved in later versions of the code.
Like the Islamic religious calendar, Umm al-Qura is also based
on the sighting method of the crescent moon but is standardized by Saudi Arabia.
The fixed-cycle civil calendar is used.
This class should not be subclassed.
IslamicCalendar usually should be instantiated using
Calendar.getInstance(ULocale)
passing in a ULocale
with the tag "@calendar=islamic"
or "@calendar=islamic-civil"
or "@calendar=islamic-umalqura"
.
Summary
Constants |
int |
DHU_AL_HIJJAH
Constant for Dhu al-Hijjah, the 12th month of the Islamic year.
|
int |
DHU_AL_QIDAH
Constant for Dhu al-Qi'dah, the 11th month of the Islamic year.
|
int |
JUMADA_1
Constant for Jumada al-awwal or (Jumada I), the 5th month of the Islamic year.
|
int |
JUMADA_2
Constant for Jumada al-thani or (Jumada II), the 6th month of the Islamic year.
|
int |
MUHARRAM
Constant for Muharram, the 1st month of the Islamic year.
|
int |
RABI_1
Constant for Rabi' al-awwal (or Rabi' I), the 3rd month of the Islamic year.
|
int |
RABI_2
Constant for Rabi' al-thani or (Rabi' II), the 4th month of the Islamic year.
|
int |
RAJAB
Constant for Rajab, the 7th month of the Islamic year.
|
int |
RAMADAN
Constant for Ramadan, the 9th month of the Islamic year.
|
int |
SAFAR
Constant for Safar, the 2nd month of the Islamic year.
|
int |
SHABAN
Constant for Sha'ban, the 8th month of the Islamic year.
|
int |
SHAWWAL
Constant for Shawwal, the 10th month of the Islamic year.
|
Inherited constants |
From class
android.icu.util.Calendar
int |
AM
Value of the AM_PM field indicating the
period of the day from midnight to just before noon.
|
int |
AM_PM
Field number for get and set indicating
whether the HOUR is before or after noon.
|
int |
APRIL
Value of the MONTH field indicating the
fourth month of the year.
|
int |
AUGUST
Value of the MONTH field indicating the
eighth month of the year.
|
int |
DATE
Field number for get and set indicating the
day of the month.
|
int |
DAY_OF_MONTH
Field number for get and set indicating the
day of the month.
|
int |
DAY_OF_WEEK
Field number for get and set indicating the day
of the week.
|
int |
DAY_OF_WEEK_IN_MONTH
Field number for get and set indicating the
ordinal number of the day of the week within the current month.
|
int |
DAY_OF_YEAR
Field number for get and set indicating the day
number within the current year.
|
int |
DECEMBER
Value of the MONTH field indicating the
twelfth month of the year.
|
int |
DOW_LOCAL
[icu] Field number for get() and set()
indicating the localized day of week.
|
int |
DST_OFFSET
Field number for get and set indicating the
daylight savings offset in milliseconds.
|
int |
EPOCH_JULIAN_DAY
The Julian day of the epoch, that is, January 1, 1970 on the
Gregorian calendar.
|
int |
ERA
Field number for get and set indicating the
era, e.g., AD or BC in the Julian calendar.
|
int |
EXTENDED_YEAR
[icu] Field number for get() and set()
indicating the extended year.
|
int |
FEBRUARY
Value of the MONTH field indicating the
second month of the year.
|
int |
FRIDAY
Value of the DAY_OF_WEEK field indicating
Friday.
|
int |
GREATEST_MINIMUM
Limit type for getLimit() and handleGetLimit()
indicating the greatest minimum value that a field can take.
|
int |
HOUR
Field number for get and set indicating the
hour of the morning or afternoon.
|
int |
HOUR_OF_DAY
Field number for get and set indicating the
hour of the day.
|
int |
INTERNALLY_SET
Value of the time stamp stamp[] indicating that a field
has been set via computations from the time or from other fields.
|
int |
IS_LEAP_MONTH
[icu] Field indicating whether or not the current month is a leap month.
|
int |
JANUARY
Value of the MONTH field indicating the
first month of the year.
|
int |
JAN_1_1_JULIAN_DAY
The Julian day of the Gregorian epoch, that is, January 1, 1 on the
Gregorian calendar.
|
int |
JULIAN_DAY
[icu] Field number for get() and set()
indicating the modified Julian day number.
|
int |
JULY
Value of the MONTH field indicating the
seventh month of the year.
|
int |
JUNE
Value of the MONTH field indicating the
sixth month of the year.
|
int |
LEAST_MAXIMUM
Limit type for getLimit() and handleGetLimit()
indicating the least maximum value that a field can take.
|
int |
MARCH
Value of the MONTH field indicating the
third month of the year.
|
int |
MAXIMUM
Limit type for getLimit() and handleGetLimit()
indicating the maximum value that a field can take (greatest maximum).
|
int |
MAX_FIELD_COUNT
This constant was deprecated
in API level 26.
ICU 58 The numeric value may change over time, see ICU ticket #12420.
|
int |
MAX_JULIAN
The maximum supported Julian day.
|
long |
MAX_MILLIS
The maximum supported epoch milliseconds.
|
int |
MAY
Value of the MONTH field indicating the
fifth month of the year.
|
int |
MILLISECOND
Field number for get and set indicating the
millisecond within the second.
|
int |
MILLISECONDS_IN_DAY
[icu] Field number for get() and set()
indicating the milliseconds in the day.
|
int |
MINIMUM
Limit type for getLimit() and handleGetLimit()
indicating the minimum value that a field can take (least minimum).
|
int |
MINIMUM_USER_STAMP
If the time stamp stamp[] has a value greater than or
equal to MINIMUM_USER_SET then it has been set by the
user via a call to set() .
|
int |
MINUTE
Field number for get and set indicating the
minute within the hour.
|
int |
MIN_JULIAN
The minimum supported Julian day.
|
long |
MIN_MILLIS
The minimum supported epoch milliseconds.
|
int |
MONDAY
Value of the DAY_OF_WEEK field indicating
Monday.
|
int |
MONTH
Field number for get and set indicating the
month.
|
int |
NOVEMBER
Value of the MONTH field indicating the
eleventh month of the year.
|
int |
OCTOBER
Value of the MONTH field indicating the
tenth month of the year.
|
long |
ONE_DAY
The number of milliseconds in one day.
|
int |
ONE_HOUR
The number of milliseconds in one hour.
|
int |
ONE_MINUTE
The number of milliseconds in one minute.
|
int |
ONE_SECOND
The number of milliseconds in one second.
|
long |
ONE_WEEK
The number of milliseconds in one week.
|
int |
PM
Value of the AM_PM field indicating the
period of the day from noon to just before midnight.
|
int |
RESOLVE_REMAP
Value to OR against resolve table field values for remapping.
|
int |
SATURDAY
Value of the DAY_OF_WEEK field indicating
Saturday.
|
int |
SECOND
Field number for get and set indicating the
second within the minute.
|
int |
SEPTEMBER
Value of the MONTH field indicating the
ninth month of the year.
|
int |
SUNDAY
Value of the DAY_OF_WEEK field indicating
Sunday.
|
int |
THURSDAY
Value of the DAY_OF_WEEK field indicating
Thursday.
|
int |
TUESDAY
Value of the DAY_OF_WEEK field indicating
Tuesday.
|
int |
UNDECIMBER
Value of the MONTH field indicating the
thirteenth month of the year.
|
int |
UNSET
Value of the time stamp stamp[] indicating that
a field has not been set since the last call to clear() .
|
int |
WALLTIME_FIRST
[icu]Option used by setRepeatedWallTimeOption(int) and
setSkippedWallTimeOption(int) specifying an ambiguous wall time
to be interpreted as the earliest.
|
int |
WALLTIME_LAST
[icu]Option used by setRepeatedWallTimeOption(int) and
setSkippedWallTimeOption(int) specifying an ambiguous wall time
to be interpreted as the latest.
|
int |
WALLTIME_NEXT_VALID
[icu]Option used by setSkippedWallTimeOption(int) specifying an
ambiguous wall time to be interpreted as the next valid wall time.
|
int |
WEDNESDAY
Value of the DAY_OF_WEEK field indicating
Wednesday.
|
int |
WEEK_OF_MONTH
Field number for get and set indicating the
week number within the current month.
|
int |
WEEK_OF_YEAR
Field number for get and set indicating the
week number within the current year.
|
int |
YEAR
Field number for get and set indicating the
year.
|
int |
YEAR_WOY
[icu] Field number for get() and set()
indicating the extended year corresponding to the
WEEK_OF_YEAR field.
|
int |
ZONE_OFFSET
Field number for get and set indicating the
raw offset from GMT in milliseconds.
|
|
Public constructors |
IslamicCalendar()
Constructs a default IslamicCalendar using the current time
in the default time zone with the default FORMAT locale.
|
IslamicCalendar(TimeZone zone)
Constructs an IslamicCalendar based on the current time
in the given time zone with the default FORMAT locale.
|
IslamicCalendar(Locale aLocale)
Constructs an IslamicCalendar based on the current time
in the default time zone with the given locale.
|
IslamicCalendar(ULocale locale)
Constructs an IslamicCalendar based on the current time
in the default time zone with the given locale.
|
IslamicCalendar(TimeZone zone, Locale aLocale)
Constructs an IslamicCalendar based on the current time
in the given time zone with the given locale.
|
IslamicCalendar(TimeZone zone, ULocale locale)
Constructs an IslamicCalendar based on the current time
in the given time zone with the given locale.
|
IslamicCalendar(Date date)
Constructs an IslamicCalendar with the given date set
in the default time zone with the default FORMAT locale.
|
IslamicCalendar(int year, int month, int date)
Constructs an IslamicCalendar with the given date set
in the default time zone with the default FORMAT locale.
|
IslamicCalendar(int year, int month, int date, int hour, int minute, int second)
Constructs an IslamicCalendar with the given date
and time set for the default time zone with the default FORMAT locale.
|
Protected methods |
void
|
handleComputeFields(int julianDay)
Override Calendar to compute several fields specific to the Islamic
calendar system.
|
int
|
handleComputeMonthStart(int eyear, int month, boolean useMonth)
Returns the Julian day number of day before the first day of the
given month in the given extended year.
|
int
|
handleGetExtendedYear()
Returns the extended year defined by the current fields.
|
int
|
handleGetLimit(int field, int limitType)
Subclass API for defining limits of different types.
|
int
|
handleGetMonthLength(int extendedYear, int month)
Return the length (in days) of the given month.
|
int
|
handleGetYearLength(int extendedYear)
Return the number of days in the given Islamic year
|
Inherited methods |
From class
android.icu.util.Calendar
void
|
add(int field, int amount)
Add a signed amount to a specified field, using this calendar's rules.
|
boolean
|
after(Object when)
Compares the time field records.
|
boolean
|
before(Object when)
Compares the time field records.
|
final
void
|
clear()
Clears the values of all the time fields.
|
final
void
|
clear(int field)
Clears the value in the given time field.
|
Object
|
clone()
Overrides Cloneable
|
int
|
compareTo(Calendar that)
Compares the times (in millis) represented by two
Calendar objects.
|
void
|
complete()
Fills in any unset fields in the time field list.
|
void
|
computeFields()
Converts the current millisecond time value time to
field values in fields[] .
|
final
void
|
computeGregorianFields(int julianDay)
Compute the Gregorian calendar year, month, and day of month from the
Julian day.
|
int
|
computeGregorianMonthStart(int year, int month)
Compute the Julian day of a month of the Gregorian calendar.
|
int
|
computeJulianDay()
Compute the Julian day number as specified by this calendar's fields.
|
int
|
computeMillisInDay()
This method was deprecated
in API level 26.
ICU 60
|
void
|
computeTime()
Converts the current field values in fields[] to the
millisecond time value time .
|
int
|
computeZoneOffset(long millis, int millisInDay)
This method was deprecated
in API level 26.
ICU 60
|
boolean
|
equals(Object obj)
Compares this calendar to the specified object.
|
int
|
fieldDifference(Date when, int field)
[icu] Returns the difference between the given time and the time this
calendar object is set to.
|
String
|
fieldName(int field)
Returns a string name for a field, for debugging and exceptions.
|
static
final
int
|
floorDivide(int numerator, int denominator, int[] remainder)
Divide two integers, returning the floor of the quotient, and
the modulus remainder.
|
static
final
int
|
floorDivide(int numerator, int denominator)
Divide two integers, returning the floor of the quotient.
|
static
final
long
|
floorDivide(long numerator, long denominator)
Divide two long integers, returning the floor of the quotient.
|
static
final
int
|
floorDivide(long numerator, int denominator, int[] remainder)
Divide two integers, returning the floor of the quotient, and
the modulus remainder.
|
final
int
|
get(int field)
Returns the value for a given time field.
|
int
|
getActualMaximum(int field)
Returns the maximum value that this field could have, given the
current date.
|
int
|
getActualMinimum(int field)
Returns the minimum value that this field could have, given the current date.
|
static
Locale[]
|
getAvailableLocales()
Returns the list of locales for which Calendars are installed.
|
DateFormat
|
getDateTimeFormat(int dateStyle, int timeStyle, ULocale loc)
[icu] Returns a DateFormat appropriate to this calendar.
|
DateFormat
|
getDateTimeFormat(int dateStyle, int timeStyle, Locale loc)
[icu] Returns a DateFormat appropriate to this calendar.
|
String
|
getDisplayName(ULocale loc)
Returns the name of this calendar in the language of the given locale.
|
String
|
getDisplayName(Locale loc)
Returns the name of this calendar in the language of the given locale.
|
final
int
|
getFieldCount()
[icu] Returns the number of fields defined by this calendar.
|
int[][][]
|
getFieldResolutionTable()
Returns the field resolution array for this calendar.
|
int
|
getFirstDayOfWeek()
Returns what the first day of the week is,
where 1 = SUNDAY and 7 = SATURDAY .
|
final
int
|
getGreatestMinimum(int field)
Returns the highest minimum value for the given field if varies.
|
final
int
|
getGregorianDayOfMonth()
Returns the day of month (1-based) on the Gregorian calendar as
computed by computeGregorianFields() .
|
final
int
|
getGregorianDayOfYear()
Returns the day of year (1-based) on the Gregorian calendar as
computed by computeGregorianFields() .
|
final
int
|
getGregorianMonth()
Returns the month (0-based) on the Gregorian calendar as computed by
computeGregorianFields() .
|
final
int
|
getGregorianYear()
Returns the extended year on the Gregorian calendar as computed by
computeGregorianFields() .
|
static
Calendar
|
getInstance()
Returns a calendar using the default time zone and locale.
|
static
Calendar
|
getInstance(Locale aLocale)
Returns a calendar using the default time zone and specified locale.
|
static
Calendar
|
getInstance(TimeZone zone, Locale aLocale)
Returns a calendar with the specified time zone and locale.
|
static
Calendar
|
getInstance(TimeZone zone, ULocale locale)
Returns a calendar with the specified time zone and locale.
|
static
Calendar
|
getInstance(TimeZone zone)
Returns a calendar using the specified time zone and default locale.
|
static
Calendar
|
getInstance(ULocale locale)
Returns a calendar using the default time zone and specified locale.
|
static
final
String[]
|
getKeywordValuesForLocale(String key, ULocale locale, boolean commonlyUsed)
[icu] Given a key and a locale, returns an array of string values in a preferred
order that would make a difference.
|
final
int
|
getLeastMaximum(int field)
Returns the lowest maximum value for the given field if varies.
|
int
|
getLimit(int field, int limitType)
Returns a limit for a field.
|
final
int
|
getMaximum(int field)
Returns the maximum value for the given time field.
|
int
|
getMinimalDaysInFirstWeek()
Returns what the minimal days required in the first week of the year are.
|
final
int
|
getMinimum(int field)
Returns the minimum value for the given time field.
|
int
|
getRepeatedWallTimeOption()
[icu]Gets the behavior for handling wall time repeating multiple times
at negative time zone offset transitions.
|
int
|
getSkippedWallTimeOption()
[icu]Gets the behavior for handling skipped wall time at positive time zone offset
transitions.
|
final
int
|
getStamp(int field)
Returns the timestamp of a field.
|
final
Date
|
getTime()
Returns this Calendar's current time.
|
long
|
getTimeInMillis()
Returns this Calendar's current time as a long.
|
TimeZone
|
getTimeZone()
Returns the time zone.
|
String
|
getType()
[icu] Returns the calendar type name string for this Calendar object.
|
Calendar.WeekData
|
getWeekData()
[icu] Return simple, immutable struct-like class for access to the week data in this calendar.
|
static
Calendar.WeekData
|
getWeekDataForRegion(String region)
[icu] Return simple, immutable struct-like class for access to the CLDR week data.
|
static
final
int
|
gregorianMonthLength(int y, int m)
Returns the length of a month of the Gregorian calendar.
|
static
final
int
|
gregorianPreviousMonthLength(int y, int m)
Returns the length of a previous month of the Gregorian calendar.
|
void
|
handleComputeFields(int julianDay)
Subclasses may override this method to compute several fields
specific to each calendar system.
|
int
|
handleComputeJulianDay(int bestField)
Subclasses may override this.
|
abstract
int
|
handleComputeMonthStart(int eyear, int month, boolean useMonth)
Returns the Julian day number of day before the first day of the
given month in the given extended year.
|
int[]
|
handleCreateFields()
Subclasses that use additional fields beyond those defined in
Calendar should override this method to return an
int[] array of the appropriate length.
|
DateFormat
|
handleGetDateFormat(String pattern, String override, Locale locale)
Creates a DateFormat appropriate to this calendar.
|
DateFormat
|
handleGetDateFormat(String pattern, ULocale locale)
Creates a DateFormat appropriate to this calendar.
|
DateFormat
|
handleGetDateFormat(String pattern, Locale locale)
Creates a DateFormat appropriate to this calendar.
|
abstract
int
|
handleGetExtendedYear()
Returns the extended year defined by the current fields.
|
abstract
int
|
handleGetLimit(int field, int limitType)
Subclass API for defining limits of different types.
|
int
|
handleGetMonthLength(int extendedYear, int month)
Returns the number of days in the given month of the given extended
year of this calendar system.
|
int
|
handleGetYearLength(int eyear)
Returns the number of days in the given extended year of this
calendar system.
|
int
|
hashCode()
Returns a hash code for this calendar.
|
final
int
|
internalGet(int field)
Returns the value for a given time field.
|
final
int
|
internalGet(int field, int defaultValue)
Returns the value for a given time field, or return the given default
value if the field is not set.
|
final
long
|
internalGetTimeInMillis()
Returns the current milliseconds without recomputing.
|
final
void
|
internalSet(int field, int value)
Set a field to a value.
|
boolean
|
isEquivalentTo(Calendar other)
[icu] Returns true if the given Calendar object is equivalent to this
one.
|
static
final
boolean
|
isGregorianLeapYear(int year)
Determines if the given year is a leap year.
|
boolean
|
isLenient()
Tell whether date/time interpretation is to be lenient.
|
final
boolean
|
isSet(int field)
Determines if the given time field has a value set.
|
boolean
|
isWeekend(Date date)
[icu] Returns true if the given date and time is in the weekend in this calendar
system.
|
boolean
|
isWeekend()
[icu] Returns true if this Calendar's current date and time is in the weekend in
this calendar system.
|
static
final
int
|
julianDayToDayOfWeek(int julian)
Returns the day of week, from SUNDAY to SATURDAY, given a Julian day.
|
static
final
long
|
julianDayToMillis(int julian)
Converts Julian day to time as milliseconds.
|
static
final
int
|
millisToJulianDay(long millis)
Converts time as milliseconds to Julian day.
|
int
|
newerField(int defaultField, int alternateField)
Returns the field that is newer, either defaultField, or
alternateField.
|
int
|
newestStamp(int first, int last, int bestStampSoFar)
Returns the newest stamp of a given range of fields.
|
void
|
pinField(int field)
Adjust the specified field so that it is within
the allowable range for the date to which this calendar is set.
|
void
|
prepareGetActual(int field, boolean isMinimum)
Prepare this calendar for computing the actual minimum or maximum.
|
int
|
resolveFields(int[][][] precedenceTable)
Given a precedence table, return the newest field combination in
the table, or -1 if none is found.
|
final
void
|
roll(int field, boolean up)
Rolls (up/down) a single unit of time on the given field.
|
void
|
roll(int field, int amount)
Rolls (up/down) a specified amount time on the given field.
|
final
void
|
set(int year, int month, int date, int hour, int minute, int second)
Sets the values for the fields year, month, date, hour, minute, and second.
|
final
void
|
set(int year, int month, int date, int hour, int minute)
Sets the values for the fields year, month, date, hour, and minute.
|
final
void
|
set(int field, int value)
Sets the time field with the given value.
|
final
void
|
set(int year, int month, int date)
Sets the values for the fields year, month, and date.
|
void
|
setFirstDayOfWeek(int value)
Sets what the first day of the week is,
where 1 = SUNDAY and 7 = SATURDAY .
|
void
|
setLenient(boolean lenient)
Specify whether or not date/time interpretation is to be lenient.
|
void
|
setMinimalDaysInFirstWeek(int value)
Sets what the minimal days required in the first week of the year are.
|
void
|
setRepeatedWallTimeOption(int option)
[icu]Sets the behavior for handling wall time repeating multiple times
at negative time zone offset transitions.
|
void
|
setSkippedWallTimeOption(int option)
[icu]Sets the behavior for handling skipped wall time at positive time zone offset
transitions.
|
final
void
|
setTime(Date date)
Sets this Calendar's current time with the given Date.
|
void
|
setTimeInMillis(long millis)
Sets this Calendar's current time from the given long value.
|
void
|
setTimeZone(TimeZone value)
Sets the time zone with the given time zone value.
|
Calendar
|
setWeekData(Calendar.WeekData wdata)
[icu] Set data in this calendar based on the WeekData input.
|
String
|
toString()
Returns a string representation of this calendar.
|
void
|
validateField(int field)
Validate a single field of this calendar.
|
final
void
|
validateField(int field, int min, int max)
Validate a single field of this calendar given its minimum and
maximum allowed value.
|
void
|
validateFields()
Ensure that each field is within its valid range by calling validateField(int) on each field that has been set.
|
int
|
weekNumber(int desiredDay, int dayOfPeriod, int dayOfWeek)
Returns the week number of a day, within a period.
|
final
int
|
weekNumber(int dayOfPeriod, int dayOfWeek)
Returns the week number of a day, within a period.
|
|
From class
java.lang.Object
Object
|
clone()
Creates and returns a copy of this object.
|
boolean
|
equals(Object obj)
Indicates whether some other object is "equal to" this one.
|
void
|
finalize()
Called by the garbage collector on an object when garbage collection
determines that there are no more references to the object.
|
final
Class<?>
|
getClass()
Returns the runtime class of this Object .
|
int
|
hashCode()
Returns a hash code value for the object.
|
final
void
|
notify()
Wakes up a single thread that is waiting on this object's
monitor.
|
final
void
|
notifyAll()
Wakes up all threads that are waiting on this object's monitor.
|
String
|
toString()
Returns a string representation of the object.
|
final
void
|
wait(long timeoutMillis, int nanos)
Causes the current thread to wait until it is awakened, typically
by being notified or interrupted, or until a
certain amount of real time has elapsed.
|
final
void
|
wait(long timeoutMillis)
Causes the current thread to wait until it is awakened, typically
by being notified or interrupted, or until a
certain amount of real time has elapsed.
|
final
void
|
wait()
Causes the current thread to wait until it is awakened, typically
by being notified or interrupted.
|
|
|
Constants
DHU_AL_HIJJAH
public static final int DHU_AL_HIJJAH
Constant for Dhu al-Hijjah, the 12th month of the Islamic year.
Constant Value:
11
(0x0000000b)
DHU_AL_QIDAH
public static final int DHU_AL_QIDAH
Constant for Dhu al-Qi'dah, the 11th month of the Islamic year.
Constant Value:
10
(0x0000000a)
JUMADA_1
public static final int JUMADA_1
Constant for Jumada al-awwal or (Jumada I), the 5th month of the Islamic year.
Constant Value:
4
(0x00000004)
JUMADA_2
public static final int JUMADA_2
Constant for Jumada al-thani or (Jumada II), the 6th month of the Islamic year.
Constant Value:
5
(0x00000005)
MUHARRAM
public static final int MUHARRAM
Constant for Muharram, the 1st month of the Islamic year.
Constant Value:
0
(0x00000000)
RABI_1
public static final int RABI_1
Constant for Rabi' al-awwal (or Rabi' I), the 3rd month of the Islamic year.
Constant Value:
2
(0x00000002)
RABI_2
public static final int RABI_2
Constant for Rabi' al-thani or (Rabi' II), the 4th month of the Islamic year.
Constant Value:
3
(0x00000003)
RAJAB
public static final int RAJAB
Constant for Rajab, the 7th month of the Islamic year.
Constant Value:
6
(0x00000006)
RAMADAN
public static final int RAMADAN
Constant for Ramadan, the 9th month of the Islamic year.
Constant Value:
8
(0x00000008)
SAFAR
public static final int SAFAR
Constant for Safar, the 2nd month of the Islamic year.
Constant Value:
1
(0x00000001)
SHABAN
public static final int SHABAN
Constant for Sha'ban, the 8th month of the Islamic year.
Constant Value:
7
(0x00000007)
SHAWWAL
public static final int SHAWWAL
Constant for Shawwal, the 10th month of the Islamic year.
Constant Value:
9
(0x00000009)
Public constructors
IslamicCalendar
public IslamicCalendar ()
Constructs a default IslamicCalendar
using the current time
in the default time zone with the default FORMAT
locale.
IslamicCalendar
public IslamicCalendar (TimeZone zone)
Constructs an IslamicCalendar
based on the current time
in the given time zone with the default FORMAT
locale.
Parameters |
zone |
TimeZone : the given time zone. |
IslamicCalendar
public IslamicCalendar (Locale aLocale)
Constructs an IslamicCalendar
based on the current time
in the default time zone with the given locale.
Parameters |
aLocale |
Locale : the given locale. |
IslamicCalendar
public IslamicCalendar (ULocale locale)
Constructs an IslamicCalendar
based on the current time
in the default time zone with the given locale.
Parameters |
locale |
ULocale : the given ulocale. |
IslamicCalendar
public IslamicCalendar (TimeZone zone,
Locale aLocale)
Constructs an IslamicCalendar
based on the current time
in the given time zone with the given locale.
Parameters |
zone |
TimeZone : the given time zone. |
aLocale |
Locale : the given locale. |
IslamicCalendar
public IslamicCalendar (TimeZone zone,
ULocale locale)
Constructs an IslamicCalendar
based on the current time
in the given time zone with the given locale.
Parameters |
zone |
TimeZone : the given time zone. |
locale |
ULocale : the given ulocale. |
IslamicCalendar
public IslamicCalendar (Date date)
Constructs an IslamicCalendar
with the given date set
in the default time zone with the default FORMAT
locale.
Parameters |
date |
Date : The date to which the new calendar is set. |
IslamicCalendar
public IslamicCalendar (int year,
int month,
int date)
Constructs an IslamicCalendar
with the given date set
in the default time zone with the default FORMAT
locale.
Parameters |
year |
int : the value used to set the YEAR time field in the calendar. |
month |
int : the value used to set the MONTH time field in the calendar.
Note that the month value is 0-based. e.g., 0 for Muharram. |
date |
int : the value used to set the DATE time field in the calendar. |
IslamicCalendar
public IslamicCalendar (int year,
int month,
int date,
int hour,
int minute,
int second)
Constructs an IslamicCalendar
with the given date
and time set for the default time zone with the default FORMAT
locale.
Parameters |
year |
int : the value used to set the YEAR time field in the calendar. |
month |
int : the value used to set the MONTH time field in the calendar.
Note that the month value is 0-based. e.g., 0 for Muharram. |
date |
int : the value used to set the DATE time field in the calendar. |
hour |
int : the value used to set the HOUR_OF_DAY time field
in the calendar. |
minute |
int : the value used to set the MINUTE time field
in the calendar. |
second |
int : the value used to set the SECOND time field
in the calendar. |
Public methods
getType
public String getType ()
[icu] Returns the calendar type name string for this Calendar object.
The returned string is the legacy ICU calendar attribute value,
for example, "gregorian" or "japanese".
See type="old type name" for the calendar attribute of locale IDs
at http://www.unicode.org/reports/tr35/#Key_Type_Definitions
Returns |
String |
legacy calendar type name string |
setCalculationType
public void setCalculationType (IslamicCalendar.CalculationType type)
sets the calculation type for this calendar.
Parameters |
type |
IslamicCalendar.CalculationType |
Protected methods
handleComputeFields
protected void handleComputeFields (int julianDay)
Override Calendar to compute several fields specific to the Islamic
calendar system. These are:
- ERA
- YEAR
- MONTH
- DAY_OF_MONTH
- DAY_OF_YEAR
- EXTENDED_YEAR
The DAY_OF_WEEK and DOW_LOCAL fields are already set when this
method is called. The getGregorianXxx() methods return Gregorian
calendar equivalents for the given Julian day.
handleComputeMonthStart
protected int handleComputeMonthStart (int eyear,
int month,
boolean useMonth)
Returns the Julian day number of day before the first day of the
given month in the given extended year. Subclasses should override
this method to implement their calendar system.
Parameters |
eyear |
int : the extended year |
month |
int : the zero-based month, or 0 if useMonth is false |
useMonth |
boolean : if false, compute the day before the first day of
the given year, otherwise, compute the day before the first day of
the given month |
Returns |
int |
the Julian day number of the day before the first
day of the given month and year |
handleGetExtendedYear
protected int handleGetExtendedYear ()
Returns the extended year defined by the current fields. This will
use the EXTENDED_YEAR field or the YEAR and supra-year fields (such
as ERA) specific to the calendar system, depending on which set of
fields is newer.
Returns |
int |
the extended year |
handleGetLimit
protected int handleGetLimit (int field,
int limitType)
Subclass API for defining limits of different types.
Subclasses must implement this method to return limits for the
following fields:
ERA
YEAR
MONTH
WEEK_OF_YEAR
WEEK_OF_MONTH
DAY_OF_MONTH
DAY_OF_YEAR
DAY_OF_WEEK_IN_MONTH
YEAR_WOY
EXTENDED_YEAR
Parameters |
field |
int : one of the above field numbers |
limitType |
int : one of MINIMUM , GREATEST_MINIMUM ,
LEAST_MAXIMUM , or MAXIMUM |
handleGetMonthLength
protected int handleGetMonthLength (int extendedYear,
int month)
Return the length (in days) of the given month.
Parameters |
extendedYear |
int : The hijri year |
month |
int : The hijri month, 0-based |
handleGetYearLength
protected int handleGetYearLength (int extendedYear)
Return the number of days in the given Islamic year
Parameters |
extendedYear |
int |