Prev Class | Next Class | Frames | No Frames |
Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Object
com.ibm.icu.util.Calendar
com.ibm.icu.util.HebrewCalendar
public class HebrewCalendar
extends Calendar
HebrewCalendar
is a subclass of Calendar
that that implements the traditional Hebrew calendar.
This is the civil calendar in Israel and the liturgical calendar
of the Jewish faith worldwide.
The Hebrew calendar is lunisolar and thus has a number of interesting
properties that distinguish it from the Gregorian. Months start
on the day of (an arithmetic approximation of) each new moon. Since the
solar year (approximately 365.24 days) is not an even multiple of
the lunar month (approximately 29.53 days) an extra "leap month" is
inserted in 7 out of every 19 years. To make matters even more
interesting, the start of a year can be delayed by up to three days
in order to prevent certain holidays from falling on the Sabbath and
to prevent certain illegal year lengths. Finally, the lengths of certain
months can vary depending on the number of days in the year.
The leap month is known as "Adar 1" and is inserted between the
months of Shevat and Adar in leap years. Since the leap month does
not come at the end of the year, calculations involving
month numbers are particularly complex. Users of this class should
make sure to use the roll
and add
methods
rather than attempting to perform date arithmetic by manipulating
the fields directly.
Note: In the traditional Hebrew calendar, days start 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.
If you are interested in more information on the rules behind the Hebrew
calendar, see one of the following references:
Calendar.getInstance(ULocale)
passing in a ULocale
with the tag "@calendar=hebrew"
.
GregorianCalendar
, Calendar
Field Summary | |
static int |
|
static int |
|
static int |
|
static int |
|
static int |
|
static int |
|
static int |
|
static int |
|
static int |
|
static int |
|
static int |
|
static int |
|
static int |
|
Fields inherited from class com.ibm.icu.util.Calendar | |
AM , AM_PM , APRIL , AUGUST , BASE_FIELD_COUNT , DATE , DAY_OF_MONTH , DAY_OF_WEEK , DAY_OF_WEEK_IN_MONTH , DAY_OF_YEAR , DECEMBER , DOW_LOCAL , DST_OFFSET , EPOCH_JULIAN_DAY , ERA , EXTENDED_YEAR , FEBRUARY , FRIDAY , GREATEST_MINIMUM , HOUR , HOUR_OF_DAY , INTERNALLY_SET , JANUARY , JAN_1_1_JULIAN_DAY , JULIAN_DAY , JULY , JUNE , LEAST_MAXIMUM , MARCH , MAXIMUM , MAX_DATE , MAX_FIELD_COUNT , MAX_JULIAN , MAX_MILLIS , MAY , MILLISECOND , MILLISECONDS_IN_DAY , MINIMUM , MINIMUM_USER_STAMP , MINUTE , MIN_DATE , MIN_JULIAN , MIN_MILLIS , MONDAY , MONTH , NOVEMBER , OCTOBER , ONE_DAY , ONE_HOUR , ONE_MINUTE , ONE_SECOND , ONE_WEEK , PM , RESOLVE_REMAP , SATURDAY , SECOND , SEPTEMBER , SUNDAY , THURSDAY , TUESDAY , UNDECIMBER , UNSET , WEDNESDAY , WEEKDAY , WEEKEND , WEEKEND_CEASE , WEEKEND_ONSET , WEEK_OF_MONTH , WEEK_OF_YEAR , YEAR , YEAR_WOY , ZONE_OFFSET |
Constructor Summary | |
| |
| |
| |
| |
| |
| |
| |
| |
|
Method Summary | |
void |
|
String |
|
protected void |
|
protected int |
|
protected int | |
protected int |
|
protected int |
|
protected int |
|
void |
|
public static final int ADAR
Constant for the Adar, the 7th month of the Hebrew year.
- Field Value:
- 6
public static final int ADAR_1
Constant for Adar I, the 6th month of the Hebrew year (present in leap years only). In non-leap years, the calendar jumps from Shevat (5th month) to Adar (7th month).
- Field Value:
- 5
public static final int AV
Constant for Av, the 12th month of the Hebrew year.
- Field Value:
- 11
public static final int ELUL
Constant for Elul, the 13th month of the Hebrew year.
- Field Value:
- 12
public static final int HESHVAN
Constant for Heshvan, the 2nd month of the Hebrew year.
- Field Value:
- 1
public static final int IYAR
Constant for Iyar, the 9th month of the Hebrew year.
- Field Value:
- 8
public static final int KISLEV
Constant for Kislev, the 3rd month of the Hebrew year.
- Field Value:
- 2
public static final int NISAN
Constant for Nisan, the 8th month of the Hebrew year.
- Field Value:
- 7
public static final int SHEVAT
Constant for Shevat, the 5th month of the Hebrew year.
- Field Value:
- 4
public static final int SIVAN
Constant for Sivan, the 10th month of the Hebrew year.
- Field Value:
- 9
public static final int TAMUZ
Constant for Tammuz, the 11th month of the Hebrew year.
- Field Value:
- 10
public static final int TEVET
Constant for Tevet, the 4th month of the Hebrew year.
- Field Value:
- 3
public static final int TISHRI
Constant for Tishri, the 1st month of the Hebrew year.
- Field Value:
- 0
public HebrewCalendar()
Constructs a defaultHebrewCalendar
using the current time in the default time zone with the default locale.
public HebrewCalendar(Date date)
Constructs aHebrewCalendar
with the given date set in the default time zone with the default locale.
- Parameters:
date
- The date to which the new calendar is set.
public HebrewCalendar(Locale aLocale)
Constructs aHebrewCalendar
based on the current time in the default time zone with the given locale.
- Parameters:
aLocale
- The locale for the new calendar.
public HebrewCalendar(TimeZone zone)
Constructs aHebrewCalendar
based on the current time in the given time zone with the default locale.
- Parameters:
zone
- The time zone for the new calendar.
public HebrewCalendar(TimeZone zone, Locale aLocale)
Constructs aHebrewCalendar
based on the current time in the given time zone with the given locale.
- Parameters:
zone
- The time zone for the new calendar.aLocale
- The locale for the new calendar.
public HebrewCalendar(TimeZone zone, ULocale locale)
Constructs aHebrewCalendar
based on the current time in the given time zone with the given locale.
- Parameters:
zone
- The time zone for the new calendar.locale
- The locale for the new calendar.
public HebrewCalendar(ULocale locale)
Constructs aHebrewCalendar
based on the current time in the default time zone with the given locale.
- Parameters:
locale
- The locale for the new calendar.
public HebrewCalendar(int year, int month, int date)
Constructs aHebrewCalendar
with the given date set in the default time zone with the default locale.
public HebrewCalendar(int year, int month, int date, int hour, int minute, int second)
Constructs aHebrewCalendar
with the given date and time set for the default time zone with the default locale.
- Parameters:
year
- The value used to set the calendar'sYEAR
time field.month
- The value used to set the calendar'sMONTH
time field. The value is 0-based. e.g., 0 for Tishri.date
- The value used to set the calendar'sDATE
time field.hour
- The value used to set the calendar'sHOUR_OF_DAY
time field.minute
- The value used to set the calendar'sMINUTE
time field.second
- The value used to set the calendar'sSECOND
time field.
public void add(int field, int amount)
Add a signed amount to a specified field, using this calendar's rules. For example, to add three days to the current date, you can calladd(Calendar.DATE, 3)
. When adding to certain fields, the values of other fields may conflict and need to be changed. For example, when adding one to theMONTH
field for the date "30 Av 5758", theDAY_OF_MONTH
field must be adjusted so that the result is "29 Elul 5758" rather than the invalid "30 Elul 5758". This method is able to add to all fields except forERA
,DST_OFFSET
, andZONE_OFFSET
. Note: You should always useroll
and add rather than attempting to perform arithmetic operations directly on the fields of a HebrewCalendar. Since theMONTH
field behaves discontinuously in non-leap years, simple arithmetic can give invalid results.
- Parameters:
field
- the time field.amount
- the amount to add to the field.
public String getType()
Return the current Calendar type.
- Returns:
- type of calendar (gregorian, etc.)
protected void handleComputeFields(int julianDay)
Subclasses may override this method to compute several fields specific to each calendar system. These are:Subclasses can refer to the DAY_OF_WEEK and DOW_LOCAL fields, which will be set when this method is called. Subclasses can also call the getGregorianXxx() methods to obtain Gregorian calendar equivalents for the given Julian day. In addition, subclasses should compute any subclass-specific fields, that is, fields from BASE_FIELD_COUNT to getFieldCount() - 1.
- ERA
- YEAR
- MONTH
- DAY_OF_MONTH
- DAY_OF_YEAR
- EXTENDED_YEAR
- Overrides:
- handleComputeFields in interface Calendar
protected int handleComputeMonthStart(int eyear, int month, boolean useMonth)
Return JD of start of given month/year.
- Overrides:
- handleComputeMonthStart in interface Calendar
protected int handleGetExtendedYear()
- Overrides:
- handleGetExtendedYear in interface Calendar
protected int handleGetLimit(int field, int limitType)
- Overrides:
- handleGetLimit in interface Calendar
protected int handleGetMonthLength(int extendedYear, int month)
Returns the length of the given month in the given year
- Overrides:
- handleGetMonthLength in interface Calendar
protected int handleGetYearLength(int eyear)
Returns the number of days in the given Hebrew year
- Overrides:
- handleGetYearLength in interface Calendar
public void roll(int field, int amount)
Rolls (up/down) a specified amount time on the given field. For example, to roll the current date up by three days, you can callroll(Calendar.DATE, 3)
. If the field is rolled past its maximum allowable value, it will "wrap" back to its minimum and continue rolling. For example, callingroll(Calendar.DATE, 10)
on a Hebrew calendar set to "25 Av 5758" will result in the date "5 Av 5758". When rolling certain fields, the values of other fields may conflict and need to be changed. For example, when rolling theMONTH
field upward by one for the date "30 Av 5758", theDAY_OF_MONTH
field must be adjusted so that the result is "29 Elul 5758" rather than the invalid "30 Elul". This method is able to roll all fields except forERA
,DST_OFFSET
, andZONE_OFFSET
. Subclasses may, of course, add support for additional fields in their overrides ofroll
. Note: You should always use roll andadd
rather than attempting to perform arithmetic operations directly on the fields of a HebrewCalendar. Since theMONTH
field behaves discontinuously in non-leap years, simple arithmetic can give invalid results.
- Parameters:
field
- the time field.amount
- the amount by which the field should be rolled.