com.ibm.icu.util
Class HebrewCalendar

java.lang.Object
  extended by com.ibm.icu.util.Calendar
      extended by com.ibm.icu.util.HebrewCalendar
All Implemented Interfaces:
Serializable, Cloneable

Deprecated. This is a draft API and might change in a future release of ICU.

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:

Note This API has not been promoted to @stable and instead has been left as @draft ICU 2.8. It may yet change or be removed in a future release.

Author:
Laura Werner, Alan Liu
See Also:
GregorianCalendar, Serialized Form

Field Summary
static int ADAR
          Deprecated. This is a draft API and might change in a future release of ICU.
static int ADAR_1
          Deprecated. This is a draft API and might change in a future release of ICU.
static int AV
          Deprecated. This is a draft API and might change in a future release of ICU.
static int ELUL
          Deprecated. This is a draft API and might change in a future release of ICU.
static int HESHVAN
          Deprecated. This is a draft API and might change in a future release of ICU.
static int IYAR
          Deprecated. This is a draft API and might change in a future release of ICU.
static int KISLEV
          Deprecated. This is a draft API and might change in a future release of ICU.
static int NISAN
          Deprecated. This is a draft API and might change in a future release of ICU.
static int SHEVAT
          Deprecated. This is a draft API and might change in a future release of ICU.
static int SIVAN
          Deprecated. This is a draft API and might change in a future release of ICU.
static int TAMUZ
          Deprecated. This is a draft API and might change in a future release of ICU.
static int TEVET
          Deprecated. This is a draft API and might change in a future release of ICU.
static int TISHRI
          Deprecated. This is a draft API and might change in a future release of ICU.
 
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, JAN_1_1_JULIAN_DAY, JANUARY, JULIAN_DAY, JULY, JUNE, LEAST_MAXIMUM, MARCH, MAX_DATE, MAX_FIELD_COUNT, MAX_JULIAN, MAX_MILLIS, MAXIMUM, MAY, MILLISECOND, MILLISECONDS_IN_DAY, MIN_DATE, MIN_JULIAN, MIN_MILLIS, MINIMUM, MINIMUM_USER_STAMP, MINUTE, 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, WEEK_OF_MONTH, WEEK_OF_YEAR, WEEKDAY, WEEKEND, WEEKEND_CEASE, WEEKEND_ONSET, YEAR, YEAR_WOY, ZONE_OFFSET
 
Constructor Summary
HebrewCalendar()
          Deprecated. This is a draft API and might change in a future release of ICU.
HebrewCalendar(Date date)
          Deprecated. This is a draft API and might change in a future release of ICU.
HebrewCalendar(int year, int month, int date)
          Deprecated. This is a draft API and might change in a future release of ICU.
HebrewCalendar(int year, int month, int date, int hour, int minute, int second)
          Deprecated. This is a draft API and might change in a future release of ICU.
HebrewCalendar(Locale aLocale)
          Deprecated. This is a draft API and might change in a future release of ICU.
HebrewCalendar(TimeZone zone)
          Deprecated. This is a draft API and might change in a future release of ICU.
HebrewCalendar(TimeZone zone, Locale aLocale)
          Deprecated. This is a draft API and might change in a future release of ICU.
HebrewCalendar(TimeZone zone, ULocale locale)
          Deprecated. This is a draft API and might change in a future release of ICU.
HebrewCalendar(ULocale locale)
          Deprecated. This is a draft API and might change in a future release of ICU.
 
Method Summary
 void add(int field, int amount)
          Deprecated. This is a draft API and might change in a future release of ICU.
 String getType()
          Deprecated. Return the current Calendar type.
protected  void handleComputeFields(int julianDay)
          Deprecated. This is a draft API and might change in a future release of ICU.
protected  int handleComputeMonthStart(int eyear, int month, boolean useMonth)
          Deprecated. This is a draft API and might change in a future release of ICU.
protected  int handleGetExtendedYear()
          Deprecated. This is a draft API and might change in a future release of ICU.
protected  int handleGetLimit(int field, int limitType)
          Deprecated. This is a draft API and might change in a future release of ICU.
protected  int handleGetMonthLength(int extendedYear, int month)
          Deprecated. This is a draft API and might change in a future release of ICU.
protected  int handleGetYearLength(int eyear)
          Deprecated. This is a draft API and might change in a future release of ICU.
 void roll(int field, int amount)
          Deprecated. This is a draft API and might change in a future release of ICU.
 
Methods inherited from class com.ibm.icu.util.Calendar
after, before, clear, clear, clone, complete, computeFields, computeGregorianFields, computeGregorianMonthStart, computeJulianDay, computeMillisInDay, computeTime, computeZoneOffset, equals, fieldDifference, fieldName, floorDivide, floorDivide, floorDivide, floorDivide, get, getActualMaximum, getActualMinimum, getAvailableLocales, getAvailableULocales, getDateTimeFormat, getDateTimeFormat, getDayOfWeekType, getDisplayName, getDisplayName, getFieldCount, getFieldResolutionTable, getFirstDayOfWeek, getGreatestMinimum, getGregorianDayOfMonth, getGregorianDayOfYear, getGregorianMonth, getGregorianYear, getInstance, getInstance, getInstance, getInstance, getInstance, getInstance, getLeastMaximum, getLimit, getLocale, getMaximum, getMinimalDaysInFirstWeek, getMinimum, getStamp, getTime, getTimeInMillis, getTimeZone, getWeekendTransition, gregorianMonthLength, gregorianPreviousMonthLength, handleComputeJulianDay, handleCreateFields, handleGetDateFormat, handleGetDateFormat, hashCode, internalGet, internalGet, internalGetTimeInMillis, internalSet, isEquivalentTo, isGregorianLeapYear, isLenient, isSet, isWeekend, isWeekend, julianDayToDayOfWeek, julianDayToMillis, millisToJulianDay, newerField, newestStamp, pinField, prepareGetActual, resolveFields, roll, set, set, set, set, setFirstDayOfWeek, setLenient, setMinimalDaysInFirstWeek, setTime, setTimeInMillis, setTimeZone, toString, validateField, validateField, validateFields, weekNumber, weekNumber
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

TISHRI

public static final int TISHRI
Deprecated. This is a draft API and might change in a future release of ICU.
Constant for Tishri, the 1st month of the Hebrew year.

See Also:
Constant Field Values

HESHVAN

public static final int HESHVAN
Deprecated. This is a draft API and might change in a future release of ICU.
Constant for Heshvan, the 2nd month of the Hebrew year.

See Also:
Constant Field Values

KISLEV

public static final int KISLEV
Deprecated. This is a draft API and might change in a future release of ICU.
Constant for Kislev, the 3rd month of the Hebrew year.

See Also:
Constant Field Values

TEVET

public static final int TEVET
Deprecated. This is a draft API and might change in a future release of ICU.
Constant for Tevet, the 4th month of the Hebrew year.

See Also:
Constant Field Values

SHEVAT

public static final int SHEVAT
Deprecated. This is a draft API and might change in a future release of ICU.
Constant for Shevat, the 5th month of the Hebrew year.

See Also:
Constant Field Values

ADAR_1

public static final int ADAR_1
Deprecated. This is a draft API and might change in a future release of ICU.
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).

See Also:
Constant Field Values

ADAR

public static final int ADAR
Deprecated. This is a draft API and might change in a future release of ICU.
Constant for the Adar, the 7th month of the Hebrew year.

See Also:
Constant Field Values

NISAN

public static final int NISAN
Deprecated. This is a draft API and might change in a future release of ICU.
Constant for Nisan, the 8th month of the Hebrew year.

See Also:
Constant Field Values

IYAR

public static final int IYAR
Deprecated. This is a draft API and might change in a future release of ICU.
Constant for Iyar, the 9th month of the Hebrew year.

See Also:
Constant Field Values

SIVAN

public static final int SIVAN
Deprecated. This is a draft API and might change in a future release of ICU.
Constant for Sivan, the 10th month of the Hebrew year.

See Also:
Constant Field Values

TAMUZ

public static final int TAMUZ
Deprecated. This is a draft API and might change in a future release of ICU.
Constant for Tammuz, the 11th month of the Hebrew year.

See Also:
Constant Field Values

AV

public static final int AV
Deprecated. This is a draft API and might change in a future release of ICU.
Constant for Av, the 12th month of the Hebrew year.

See Also:
Constant Field Values

ELUL

public static final int ELUL
Deprecated. This is a draft API and might change in a future release of ICU.
Constant for Elul, the 13th month of the Hebrew year.

See Also:
Constant Field Values
Constructor Detail

HebrewCalendar

public HebrewCalendar()
Deprecated. This is a draft API and might change in a future release of ICU.

Constructs a default HebrewCalendar using the current time in the default time zone with the default locale.


HebrewCalendar

public HebrewCalendar(TimeZone zone)
Deprecated. This is a draft API and might change in a future release of ICU.

Constructs a HebrewCalendar based on the current time in the given time zone with the default locale.

Parameters:
zone - The time zone for the new calendar.

HebrewCalendar

public HebrewCalendar(Locale aLocale)
Deprecated. This is a draft API and might change in a future release of ICU.

Constructs a HebrewCalendar based on the current time in the default time zone with the given locale.

Parameters:
aLocale - The locale for the new calendar.

HebrewCalendar

public HebrewCalendar(ULocale locale)
Deprecated. This is a draft API and might change in a future release of ICU.

Constructs a HebrewCalendar based on the current time in the default time zone with the given locale.

Parameters:
locale - The locale for the new calendar.

HebrewCalendar

public HebrewCalendar(TimeZone zone,
                      Locale aLocale)
Deprecated. This is a draft API and might change in a future release of ICU.

Constructs a HebrewCalendar 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.

HebrewCalendar

public HebrewCalendar(TimeZone zone,
                      ULocale locale)
Deprecated. This is a draft API and might change in a future release of ICU.

Constructs a HebrewCalendar 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.

HebrewCalendar

public HebrewCalendar(int year,
                      int month,
                      int date)
Deprecated. This is a draft API and might change in a future release of ICU.

Constructs a HebrewCalendar with the given date set in the default time zone with the default locale.

Parameters:
year - The value used to set the calendar's YEAR time field.
month - The value used to set the calendar's MONTH time field. The value is 0-based. e.g., 0 for Tishri.
date - The value used to set the calendar's DATE time field.

HebrewCalendar

public HebrewCalendar(Date date)
Deprecated. This is a draft API and might change in a future release of ICU.

Constructs a HebrewCalendar 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.

HebrewCalendar

public HebrewCalendar(int year,
                      int month,
                      int date,
                      int hour,
                      int minute,
                      int second)
Deprecated. This is a draft API and might change in a future release of ICU.

Constructs a HebrewCalendar 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's YEAR time field.
month - The value used to set the calendar's MONTH time field. The value is 0-based. e.g., 0 for Tishri.
date - The value used to set the calendar's DATE time field.
hour - The value used to set the calendar's HOUR_OF_DAY time field.
minute - The value used to set the calendar's MINUTE time field.
second - The value used to set the calendar's SECOND time field.
Method Detail

add

public void add(int field,
                int amount)
Deprecated. This is a draft API and might change in a future release of ICU.

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 call add(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 the MONTH field for the date "30 Av 5758", the DAY_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 for ERA, DST_OFFSET, and ZONE_OFFSET.

Note: You should always use roll and add rather than attempting to perform arithmetic operations directly on the fields of a HebrewCalendar. Since the MONTH field behaves discontinuously in non-leap years, simple arithmetic can give invalid results.

Overrides:
add in class Calendar
Parameters:
field - the time field.
amount - the amount to add to the field.
Throws:
IllegalArgumentException - if the field is invalid or refers to a field that cannot be handled by this method.
See Also:
Calendar.roll(int, int)

roll

public void roll(int field,
                 int amount)
Deprecated. This is a draft API and might change in a future release of ICU.

Rolls (up/down) a specified amount time on the given field. For example, to roll the current date up by three days, you can call roll(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, calling roll(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 the MONTH field upward by one for the date "30 Av 5758", the DAY_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 for ERA, DST_OFFSET, and ZONE_OFFSET. Subclasses may, of course, add support for additional fields in their overrides of roll.

Note: You should always use roll and add rather than attempting to perform arithmetic operations directly on the fields of a HebrewCalendar. Since the MONTH field behaves discontinuously in non-leap years, simple arithmetic can give invalid results.

Overrides:
roll in class Calendar
Parameters:
field - the time field.
amount - the amount by which the field should be rolled.
Throws:
IllegalArgumentException - if the field is invalid or refers to a field that cannot be handled by this method.
See Also:
Calendar.roll(int, boolean), Calendar.add(int, int)

handleGetLimit

protected int handleGetLimit(int field,
                             int limitType)
Deprecated. This is a draft API and might change in a future release of ICU.

Description copied from class: Calendar
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

Specified by:
handleGetLimit in class Calendar
Parameters:
field - one of the above field numbers
limitType - one of MINIMUM, GREATEST_MINIMUM, LEAST_MAXIMUM, or MAXIMUM

handleGetMonthLength

protected int handleGetMonthLength(int extendedYear,
                                   int month)
Deprecated. This is a draft API and might change in a future release of ICU.

Returns the length of the given month in the given year

Overrides:
handleGetMonthLength in class Calendar

handleGetYearLength

protected int handleGetYearLength(int eyear)
Deprecated. This is a draft API and might change in a future release of ICU.

Returns the number of days in the given Hebrew year

Overrides:
handleGetYearLength in class Calendar

handleComputeFields

protected void handleComputeFields(int julianDay)
Deprecated. This is a draft API and might change in a future release of ICU.

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.

Overrides:
handleComputeFields in class Calendar

handleGetExtendedYear

protected int handleGetExtendedYear()
Deprecated. This is a draft API and might change in a future release of ICU.

Description copied from class: Calendar
Return 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.

Specified by:
handleGetExtendedYear in class Calendar
Returns:
the extended year

handleComputeMonthStart

protected int handleComputeMonthStart(int eyear,
                                      int month,
                                      boolean useMonth)
Deprecated. This is a draft API and might change in a future release of ICU.

Return JD of start of given month/year.

Specified by:
handleComputeMonthStart in class Calendar
Parameters:
eyear - the extended year
month - the zero-based month, or 0 if useMonth is false
useMonth - 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:
the Julian day number of the day before the first day of the given month and year

getType

public String getType()
Deprecated. 
Return the current Calendar type.

Overrides:
getType in class Calendar
Returns:
type of calendar (gregorian, etc.)


Copyright (c) 2004 IBM Corporation and others.