Top Description Fields Constructors Methods
com.ibm.icu.util

public Class GregorianCalendar

extends Calendar
Class Inheritance
Known Direct Subclasses
com.ibm.icu.util.JapaneseCalendar, com.ibm.icu.util.BuddhistCalendar, com.ibm.icu.util.TaiwanCalendar
Imports
java.util.Date, .Locale, com.ibm.icu.util.ULocale.Category

ICU Enhancement

This class is ICU's replacement for java.util.GregorianCalendar.

ICU

Methods, fields, and other functionality specific to ICU are labeled 'ICU'.

GregorianCalendar is a concrete subclass of Calendar and provides the standard calendar used by most of the world.

The standard (Gregorian) calendar has 2 eras, BC and AD.

This implementation handles a single discontinuity, which corresponds by default to the date the Gregorian calendar was instituted (October 15, 1582 in some countries, later in others). The cutover date may be changed by the caller by calling setGregorianChange().

Historically, in those countries which adopted the Gregorian calendar first, October 4, 1582 was thus followed by October 15, 1582. This calendar models this correctly. Before the Gregorian cutover, GregorianCalendar implements the Julian calendar. The only difference between the Gregorian and the Julian calendar is the leap year rule. The Julian calendar specifies leap years every four years, whereas the Gregorian calendar omits century years which are not divisible by 400.

GregorianCalendar implements proleptic Gregorian and Julian calendars. That is, dates are computed by extrapolating the current rules indefinitely far backward and forward in time. As a result, GregorianCalendar may be used for all years to generate meaningful and consistent results. However, dates obtained using GregorianCalendar are historically accurate only from March 1, 4 AD onward, when modern Julian calendar rules were adopted. Before this date, leap year rules were applied irregularly, and before 45 BC the Julian calendar did not even exist.

Prior to the institution of the Gregorian calendar, New Year's Day was March 25. To avoid confusion, this calendar always uses January 1. A manual adjustment may be made if desired for dates that are prior to the Gregorian changeover and which fall between January 1 and March 24.

Values calculated for the WEEK_OF_YEAR field range from 1 to 53. Week 1 for a year is the earliest seven day period starting on getFirstDayOfWeek() that contains at least getMinimalDaysInFirstWeek() days from that year. It thus depends on the values of getMinimalDaysInFirstWeek(), getFirstDayOfWeek(), and the day of the week of January 1. Weeks between week 1 of one year and week 1 of the following year are numbered sequentially from 2 to 52 or 53 (as needed).

For example, January 1, 1998 was a Thursday. If getFirstDayOfWeek() is MONDAY and getMinimalDaysInFirstWeek() is 4 (these are the values reflecting ISO 8601 and many national standards), then week 1 of 1998 starts on December 29, 1997, and ends on January 4, 1998. If, however, getFirstDayOfWeek() is SUNDAY, then week 1 of 1998 starts on January 4, 1998, and ends on January 10, 1998; the first three days of 1998 then are part of week 53 of 1997.

Values calculated for the WEEK_OF_MONTH field range from 0 or 1 to 4 or 5. Week 1 of a month (the days with WEEK_OF_MONTH = 1) is the earliest set of at least getMinimalDaysInFirstWeek() contiguous days in that month, ending on the day before getFirstDayOfWeek(). Unlike week 1 of a year, week 1 of a month may be shorter than 7 days, need not start on getFirstDayOfWeek(), and will not include days of the previous month. Days of a month before week 1 have a WEEK_OF_MONTH of 0.

For example, if getFirstDayOfWeek() is SUNDAY and getMinimalDaysInFirstWeek() is 4, then the first week of January 1998 is Sunday, January 4 through Saturday, January 10. These days have a WEEK_OF_MONTH of 1. Thursday, January 1 through Saturday, January 3 have a WEEK_OF_MONTH of 0. If getMinimalDaysInFirstWeek() is changed to 3, then January 1 through January 3 have a WEEK_OF_MONTH of 1.

Example:

// get the supported ids for GMT-08:00 (Pacific Standard Time)
String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
// if no ids were returned, something is wrong. get out.
if (ids.length == 0)
    System.exit(0);

 // begin output
System.out.println("Current Time");

// create a Pacific Standard Time time zone
SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);

// set up rules for daylight savings time
pdt.setStartRule(Calendar.MARCH, 2, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
pdt.setEndRule(Calendar.NOVEMBER, 1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);

// create a GregorianCalendar with the Pacific Daylight time zone
// and the current date and time
Calendar calendar = new GregorianCalendar(pdt);
Date trialTime = new Date();
calendar.setTime(trialTime);

// print out a bunch of interesting things
System.out.println("ERA: " + calendar.get(Calendar.ERA));
System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println("DATE: " + calendar.get(Calendar.DATE));
System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("DAY_OF_WEEK_IN_MONTH: "
                   + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
System.out.println("ZONE_OFFSET: "
                   + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000)));
System.out.println("DST_OFFSET: "
                   + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000)));

System.out.println("Current Time, with hour reset to 3");
calendar.clear(Calendar.HOUR_OF_DAY); // so doesn't override
calendar.set(Calendar.HOUR, 3);
System.out.println("ERA: " + calendar.get(Calendar.ERA));
System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
System.out.println("DATE: " + calendar.get(Calendar.DATE));
System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("DAY_OF_WEEK_IN_MONTH: "
                   + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
System.out.println("ZONE_OFFSET: "
       + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000))); // in hours
System.out.println("DST_OFFSET: "
       + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000))); // in hours

GregorianCalendar usually should be instantiated using com.ibm.icu.util.Calendar#getInstance(ULocale) passing in a ULocale with the tag "@calendar=gregorian".

Author
Deborah Goldsmith, Mark Davis, Chen-Lieh Huang, Alan Liu
ICU Status
Stable since ICU 2.0.
See Also
Calendar, TimeZone

Field Summary

Modifier and TypeField and Description
public static final int
AD

Value of the ERA field indicating the common era (Anno Domini), also known as CE.

public static final int
BC

Value of the ERA field indicating the period before the common era (before Christ), also known as BCE.

private transient int
cutoverJulianDay

Julian day number of the Gregorian cutover.

private static final int
private long
gregorianCutover

The point at which the Gregorian calendar rules are used, measured in milliseconds from the standard epoch.

private transient int
gregorianCutoverYear

The year of the gregorianCutover, with 0 representing 1 BC, -1 representing 2 BC, etc.

protected transient boolean
invertGregorian

Used by handleComputeJulianDay() and handleComputeMonthStart().

protected transient boolean
isGregorian

Used by handleComputeJulianDay() and handleComputeMonthStart().

private static final int[][]
LIMITS

Hides com.ibm.icu.util.Calendar.LIMITS.

Old year limits were least max 292269054, max 292278994.
private static final int[][]
private static final long
Inherited from com.ibm.icu.util.Calendar:
AMAM_PMAPRILAUGUSTBASE_FIELD_COUNTDATEDATE_PRECEDENCEDAY_OF_MONTHDAY_OF_WEEKDAY_OF_WEEK_IN_MONTHDAY_OF_YEARDECEMBERDOW_LOCALDOW_PRECEDENCEDST_OFFSETEPOCH_JULIAN_DAYERAEXTENDED_YEARFEBRUARYFRIDAYGREATEST_MINIMUMHOURHOUR_OF_DAYINTERNALLY_SETIS_LEAP_MONTHJAN_1_1_JULIAN_DAYJANUARYJULIAN_DAYJULYJUNELEAST_MAXIMUMMARCHMAX_DATEMAX_FIELD_COUNTMAX_JULIANMAX_MILLISMAXIMUMMAYMILLISECONDMILLISECONDS_IN_DAYMIN_DATEMIN_JULIANMIN_MILLISMINIMUMMINIMUM_USER_STAMPMINUTEMONDAYMONTHMONTH_PRECEDENCENOVEMBEROCTOBERONE_DAYONE_HOURONE_MINUTEONE_SECONDONE_WEEKORDINAL_MONTHPMRESOLVE_REMAPSATURDAYSECONDSEPTEMBERSUNDAYTHURSDAYTUESDAYUNDECIMBERUNSETWALLTIME_FIRSTWALLTIME_LASTWALLTIME_NEXT_VALIDWEDNESDAYWEEK_OF_MONTHWEEK_OF_YEARWEEKDAYWEEKENDWEEKEND_CEASEWEEKEND_ONSETYEARYEAR_WOYZONE_OFFSET

Constructor Summary

AccessConstructor and Description
public
GregorianCalendar()

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

public
GregorianCalendar(TimeZone
the given time zone.
zone
)

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

public
GregorianCalendar(Locale
the given locale.
aLocale
)

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

public
GregorianCalendar(ULocale
the given ulocale.
locale
)

ICU

public
GregorianCalendar(TimeZone
the given time zone.
zone
,
Locale
the given locale.
aLocale
)

ICU

public
GregorianCalendar(TimeZone
the given time zone.
zone
,
ULocale
the given ulocale.
locale
)

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

public
GregorianCalendar(int
the value used to set the YEAR time field in the calendar.
year
,
int
the value used to set the MONTH time field in the calendar. Month value is 0-based. e.g., 0 for January.
month
,
int
the value used to set the DATE time field in the calendar.
date
)

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

public
GregorianCalendar(int
the value used to set the YEAR time field in the calendar.
year
,
int
the value used to set the MONTH time field in the calendar. Month value is 0-based. e.g., 0 for January.
month
,
int
the value used to set the DATE time field in the calendar.
date
,
int
the value used to set the HOUR_OF_DAY time field in the calendar.
hour
,
int
the value used to set the MINUTE time field in the calendar.
minute
)

Constructs a GregorianCalendar with the given date and time set for the default time zone with the default FORMAT locale.

public
GregorianCalendar(int
the value used to set the YEAR time field in the calendar.
year
,
int
the value used to set the MONTH time field in the calendar. Month value is 0-based. e.g., 0 for January.
month
,
int
the value used to set the DATE time field in the calendar.
date
,
int
the value used to set the HOUR_OF_DAY time field in the calendar.
hour
,
int
the value used to set the MINUTE time field in the calendar.
minute
,
int
the value used to set the SECOND time field in the calendar.
second
)

Constructs a GregorianCalendar with the given date and time set for the default time zone with the default FORMAT locale.

Method Summary

Modifier and TypeMethod and Description
public int
getActualMaximum(int
the field whose maximum is desired
field
)

Overrides com.ibm.icu.util.Calendar.getActualMaximum.

Return the maximum value that this field could have, given the current date.
public int
getActualMinimum(int
the field whose actual minimum value is desired.
field
)

Overrides com.ibm.icu.util.Calendar.getActualMinimum.

Return the minimum value that this field could have, given the current date.
public final Date

Returns:

the Gregorian cutover date for this calendar.
getGregorianChange
()

Gets the Gregorian Calendar change date.

public String
protected void
handleComputeFields(int julianDay)

Overrides com.ibm.icu.util.Calendar.handleComputeFields.

Override Calendar to compute several fields specific to the hybrid Gregorian-Julian calendar system.
protected int
handleComputeJulianDay(int bestField)

Overrides com.ibm.icu.util.Calendar.handleComputeJulianDay.

Subclasses may override this.
protected int
handleComputeMonthStart(int
the extended year
eyear
,
int
the zero-based month, or 0 if useMonth is false
month
,
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
useMonth
)

Implements abstract com.ibm.icu.util.Calendar.handleComputeMonthStart.

Return JD of start of given month/year
protected int
handleGetExtendedYear()

Implements abstract com.ibm.icu.util.Calendar.handleGetExtendedYear.

Returns the extended year defined by the current fields.
protected int
handleGetLimit(int
one of the above field numbers
field
,
int
one of MINIMUM, GREATEST_MINIMUM, LEAST_MAXIMUM, or MAXIMUM
limitType
)

Implements abstract com.ibm.icu.util.Calendar.handleGetLimit.

Subclass API for defining limits of different types.
protected int
handleGetMonthLength(int extendedYear, int month)

Overrides com.ibm.icu.util.Calendar.handleGetMonthLength.

Returns the number of days in the given month of the given extended year of this calendar system.
protected int
handleGetYearLength(int eyear)

Overrides com.ibm.icu.util.Calendar.handleGetYearLength.

Returns the number of days in the given extended year of this calendar system.
public int
hashCode()

Overrides com.ibm.icu.util.Calendar.hashCode.

Override hashCode.
pack-priv boolean
inDaylightTime()

Return true if the current time for this Calendar is in Daylight Savings Time.

public boolean
isEquivalentTo(Calendar
the Calendar to be compared with this Calendar
other
)

Overrides com.ibm.icu.util.Calendar.isEquivalentTo.

Returns true if the given Calendar object is equivalent to this one.
public boolean

Returns:

true if the given year is a leap year; false otherwise.
isLeapYear
(int
the given year.
year
)

Determines if the given year is a leap year.

public void
roll(int
the calendar field to roll.
field
,
int
the amount by which the field should be rolled.
amount
)

Overrides com.ibm.icu.util.Calendar.roll.

Roll a field by a signed amount.
public void
setGregorianChange(Date
the given Gregorian cutover date.
date
)

Sets the GregorianCalendar change date.

Inherited from com.ibm.icu.util.Calendar:
addafterbeforeclearclearclonecompareTocompletecomputeFieldscomputeGregorianFieldscomputeGregorianMonthStartcomputeJulianDaycomputeMillisInDaycomputeMillisInDayLongcomputeTimecomputeZoneOffsetcomputeZoneOffsetequalsfieldDifferencefieldNamefloorDividefloorDividefloorDividefloorDividegetgetAvailableLocalesgetAvailableULocalesgetDateAtTimePatterngetDateTimeFormatgetDateTimeFormatgetDateTimePatterngetDayOfWeekTypegetDefaultDayInMonthgetDefaultMonthInYeargetDisplayNamegetDisplayNamegetFieldCountgetFieldResolutionTablegetFirstDayOfWeekgetGreatestMinimumgetGregorianDayOfMonthgetGregorianDayOfYeargetGregorianMonthgetGregorianYeargetInstancegetInstancegetInstancegetInstancegetInstancegetInstancegetKeywordValuesForLocalegetLeastMaximumgetLimitgetLocalegetMaximumgetMinimalDaysInFirstWeekgetMinimumgetRelatedYeargetRepeatedWallTimeOptiongetSkippedWallTimeOptiongetStampgetTemporalMonthCodegetTimegetTimeInMillisgetTimeZonegetWeekDatagetWeekDataForRegiongetWeekendTransitiongregorianMonthLengthgregorianPreviousMonthLengthhandleCreateFieldshandleGetDateFormathandleGetDateFormathandleGetDateFormathandleGetDateFormathaveDefaultCenturyinTemporalLeapYearinternalGetinternalGetinternalGetMonthinternalGetMonthinternalGetTimeInMillisinternalSetisGregorianLeapYearisLenientisSetisWeekendisWeekendjulianDayToDayOfWeekjulianDayToMillismillisToJulianDaynewerFieldnewestStamppinFieldprepareGetActualresolveFieldsrollsetsetsetsetsetFirstDayOfWeeksetLenientsetLocalesetMinimalDaysInFirstWeeksetRelatedYearsetRepeatedWallTimeOptionsetSkippedWallTimeOptionsetTemporalMonthCodesetTimesetTimeInMillissetTimeZonesetWeekDatatoStringvalidateFieldvalidateFieldvalidateFieldsweekNumberweekNumber

Field Detail

BCback to summary
public static final int BC

Value of the ERA field indicating the period before the common era (before Christ), also known as BCE. The sequence of years at the transition from BC to AD is ..., 2 BC, 1 BC, 1 AD, 2 AD,...

ICU Status
Stable since ICU 2.0.
See Also
Calendar#ERA
cutoverJulianDayback to summary
private transient int cutoverJulianDay

Julian day number of the Gregorian cutover.

EPOCH_YEARback to summary
private static final int EPOCH_YEAR
gregorianCutoverback to summary
private long gregorianCutover

The point at which the Gregorian calendar rules are used, measured in milliseconds from the standard epoch. Default is October 15, 1582 (Gregorian) 00:00:00 UTC or -12219292800000L. For this value, October 4, 1582 (Julian) is followed by October 15, 1582 (Gregorian). This corresponds to Julian day number 2299161.

gregorianCutoverYearback to summary
private transient int gregorianCutoverYear

The year of the gregorianCutover, with 0 representing 1 BC, -1 representing 2 BC, etc.

invertGregorianback to summary
protected transient boolean invertGregorian

Used by handleComputeJulianDay() and handleComputeMonthStart().

ICU Status
Stable since ICU 2.0.
isGregorianback to summary
protected transient boolean isGregorian

Used by handleComputeJulianDay() and handleComputeMonthStart().

ICU Status
Stable since ICU 2.0.
LIMITSback to summary
private static final int[][] LIMITS

Hides com.ibm.icu.util.Calendar.LIMITS.

Old year limits were least max 292269054, max 292278994.

MONTH_COUNTback to summary
private static final int[][] MONTH_COUNT
serialVersionUIDback to summary
private static final long serialVersionUID

Hides com.ibm.icu.util.Calendar.serialVersionUID.

Constructor Detail

GregorianCalendarback to summary
public GregorianCalendar()

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

ICU Status
Stable since ICU 2.0.
See Also
Category#FORMAT
GregorianCalendarback to summary
public GregorianCalendar(TimeZone zone)

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

Parameters
zone:TimeZone

the given time zone.

ICU Status
Stable since ICU 2.0.
See Also
Category#FORMAT
GregorianCalendarback to summary
public GregorianCalendar(Locale aLocale)

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

Parameters
aLocale:Locale

the given locale.

ICU Status
Stable since ICU 2.0.
GregorianCalendarback to summary
public GregorianCalendar(ULocale locale)

ICU

Constructs a GregorianCalendar based on the current time in the default time zone with the given locale.
Parameters
locale:ULocale

the given ulocale.

ICU Status
Stable since ICU 3.2.
GregorianCalendarback to summary
public GregorianCalendar(TimeZone zone, Locale aLocale)

ICU

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

ICU Status
Stable since ICU 2.0.
GregorianCalendarback to summary
public GregorianCalendar(TimeZone zone, ULocale locale)

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

ICU Status
Stable since ICU 3.2.
GregorianCalendarback to summary
public GregorianCalendar(int year, int month, int date)

Constructs a GregorianCalendar 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. Month value is 0-based. e.g., 0 for January.

date:int

the value used to set the DATE time field in the calendar.

ICU Status
Stable since ICU 2.0.
See Also
Category#FORMAT
GregorianCalendarback to summary
public GregorianCalendar(int year, int month, int date, int hour, int minute)

Constructs a GregorianCalendar 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. Month value is 0-based. e.g., 0 for January.

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.

ICU Status
Stable since ICU 2.0.
See Also
Category#FORMAT
GregorianCalendarback to summary
public GregorianCalendar(int year, int month, int date, int hour, int minute, int second)

Constructs a GregorianCalendar 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. Month value is 0-based. e.g., 0 for January.

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.

ICU Status
Stable since ICU 2.0.
See Also
Category#FORMAT

Method Detail

getActualMaximumback to summary
public int getActualMaximum(int field)

Overrides com.ibm.icu.util.Calendar.getActualMaximum.

Return the maximum value that this field could have, given the current date. For example, with the date "Feb 3, 1997" and the DAY_OF_MONTH field, the actual maximum would be 28; for "Feb 3, 1996" it s 29. Similarly for a Hebrew calendar, for some years the actual maximum for MONTH is 12, and for others 13.

Parameters
field:int

Doc from com.ibm.icu.util.Calendar.getActualMaximum.

the field whose maximum is desired

Returns:int

Doc from com.ibm.icu.util.Calendar.getActualMaximum.

the maximum of the given field for the current date of this calendar

ICU Status
Stable since ICU 2.0.
getActualMinimumback to summary
public int getActualMinimum(int field)

Overrides com.ibm.icu.util.Calendar.getActualMinimum.

Return the minimum value that this field could have, given the current date. For the Gregorian calendar, this is the same as getMinimum() and getGreatestMinimum().

Parameters
field:int

Doc from com.ibm.icu.util.Calendar.getActualMinimum.

the field whose actual minimum value is desired.

Returns:int

Doc from com.ibm.icu.util.Calendar.getActualMinimum.

the minimum of the given field for the current date of this calendar

ICU Status
Stable since ICU 2.0.
getGregorianChangeback to summary
public final Date getGregorianChange()

Gets the Gregorian Calendar change date. This is the point when the switch from Julian dates to Gregorian dates occurred. Default is October 15, 1582. Previous to this, dates will be in the Julian calendar.

Returns:Date

the Gregorian cutover date for this calendar.

ICU Status
Stable since ICU 2.0.
getTypeback to summary
public String getType()

Overrides com.ibm.icu.util.Calendar.getType.

Doc from com.ibm.icu.util.Calendar.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

ICU Status
Stable since ICU 3.8.
handleComputeFieldsback to summary
protected void handleComputeFields(int julianDay)

Overrides com.ibm.icu.util.Calendar.handleComputeFields.

Override Calendar to compute several fields specific to the hybrid Gregorian-Julian calendar system. These are:

  • ERA
  • YEAR
  • MONTH
  • DAY_OF_MONTH
  • DAY_OF_YEAR
  • EXTENDED_YEAR
ICU Status
Stable since ICU 2.0.
handleComputeJulianDayback to summary
protected int handleComputeJulianDay(int bestField)

Overrides com.ibm.icu.util.Calendar.handleComputeJulianDay.

Doc from com.ibm.icu.util.Calendar.handleComputeJulianDay.

Subclasses may override this. This method calls handleGetMonthLength() to obtain the calendar-specific month length.

ICU Status
Stable since ICU 2.0.
handleComputeMonthStartback to summary
protected int handleComputeMonthStart(int eyear, int month, boolean useMonth)

Implements abstract com.ibm.icu.util.Calendar.handleComputeMonthStart.

Return JD of start of given month/year

Parameters
eyear:int

Doc from com.ibm.icu.util.Calendar.handleComputeMonthStart.

the extended year

month:int

Doc from com.ibm.icu.util.Calendar.handleComputeMonthStart.

the zero-based month, or 0 if useMonth is false

useMonth:boolean

Doc from com.ibm.icu.util.Calendar.handleComputeMonthStart.

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

Doc from com.ibm.icu.util.Calendar.handleComputeMonthStart.

the Julian day number of the day before the first day of the given month and year

ICU Status
Stable since ICU 2.0.
handleGetExtendedYearback to summary
protected int handleGetExtendedYear()

Implements abstract com.ibm.icu.util.Calendar.handleGetExtendedYear.

Doc from com.ibm.icu.util.Calendar.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

ICU Status
Stable since ICU 2.0.
handleGetLimitback to summary
protected int handleGetLimit(int field, int limitType)

Implements abstract com.ibm.icu.util.Calendar.handleGetLimit.

Doc from com.ibm.icu.util.Calendar.handleGetLimit.

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

ICU Status
Stable since ICU 2.0.
handleGetMonthLengthback to summary
protected int handleGetMonthLength(int extendedYear, int month)

Overrides com.ibm.icu.util.Calendar.handleGetMonthLength.

Doc from com.ibm.icu.util.Calendar.handleGetMonthLength.

Returns the number of days in the given month of the given extended year of this calendar system. Subclasses should override this method if they can provide a more correct or more efficient implementation than the default implementation in Calendar.

ICU Status
Stable since ICU 2.0.
handleGetYearLengthback to summary
protected int handleGetYearLength(int eyear)

Overrides com.ibm.icu.util.Calendar.handleGetYearLength.

Doc from com.ibm.icu.util.Calendar.handleGetYearLength.

Returns the number of days in the given extended year of this calendar system. Subclasses should override this method if they can provide a more correct or more efficient implementation than the default implementation in Calendar.

ICU Status
Stable since ICU 2.0.
hashCodeback to summary
public int hashCode()

Overrides com.ibm.icu.util.Calendar.hashCode.

Override hashCode. Generates the hash code for the GregorianCalendar object

Returns:int

Doc from com.ibm.icu.util.Calendar.hashCode.

a hash code value for this object.

ICU Status
Stable since ICU 2.0.
inDaylightTimeback to summary
pack-priv boolean inDaylightTime()

Return true if the current time for this Calendar is in Daylight Savings Time.

isEquivalentToback to summary
public boolean isEquivalentTo(Calendar other)

Overrides com.ibm.icu.util.Calendar.isEquivalentTo.

Returns true if the given Calendar object is equivalent to this one. Calendar override.

Parameters
other:Calendar

the Calendar to be compared with this Calendar

ICU Status
Stable since ICU 2.4.
isLeapYearback to summary
public boolean isLeapYear(int year)

Determines if the given year is a leap year. Returns true if the given year is a leap year.

Parameters
year:int

the given year.

Returns:boolean

true if the given year is a leap year; false otherwise.

ICU Status
Stable since ICU 2.0.
rollback to summary
public void roll(int field, int amount)

Overrides com.ibm.icu.util.Calendar.roll.

Roll a field by a signed amount.

Parameters
field:int

Doc from com.ibm.icu.util.Calendar.roll.

the calendar field to roll.

amount:int

Doc from com.ibm.icu.util.Calendar.roll.

the amount by which the field should be rolled.

ICU Status
Stable since ICU 2.0.
setGregorianChangeback to summary
public void setGregorianChange(Date date)

Sets the GregorianCalendar change date. This is the point when the switch from Julian dates to Gregorian dates occurred. Default is October 15, 1582. Previous to this, dates will be in the Julian calendar.

To obtain a pure Julian calendar, set the change date to Date(Long.MAX_VALUE). To obtain a pure Gregorian calendar, set the change date to Date(Long.MIN_VALUE).

Parameters
date:Date

the given Gregorian cutover date.

ICU Status
Stable since ICU 2.0.