Class IndianCalendar
- All Implemented Interfaces:
Serializable
,Cloneable
,Comparable<Calendar>
IndianCalendar
is a subclass of GregorianCalendar
that numbers years since the birth of the Buddha. This is the civil calendar
which is accepted by government of India as Indian National Calendar.
The two calendars most widely used in India today are the Vikrama calendar
followed in North India and the Shalivahana or Saka calendar which is followed
in South India and Maharashtra.
A variant of the Shalivahana Calendar was reformed and standardized as the
Indian National calendar in 1957.
Some details of Indian National Calendar (to be implemented) : The Months Month Length Start date (Gregorian) ================================================= 1 Chaitra 30/31 March 22* 2 Vaisakha 31 April 21 3 Jyaistha 31 May 22 4 Asadha 31 June 22 5 Sravana 31 July 23 6 Bhadra 31 August 23 7 Asvina 30 September 23 8 Kartika 30 October 23 9 Agrahayana 30 November 22 10 Pausa 30 December 22 11 Magha 30 January 21 12 Phalguna 30 February 20 In leap years, Chaitra has 31 days and starts on March 21 instead. The leap years of Gregorian calendar and Indian National Calendar are in synchornization. So When its a leap year in Gregorian calendar then Chaitra has 31 days. The Years Years are counted in the Saka Era, which starts its year 0 in 78AD (by gregorian calendar). So for eg. 9th June 2006 by Gregorian Calendar, is same as 19th of Jyaistha in 1928 of Saka era by Indian National Calendar.
The Indian Calendar has only one allowable era: Saka Era
. If the
calendar is not in lenient mode (see setLenient
), dates before
1/1/1 Saka Era are rejected with an IllegalArgumentException
.
This class should not be subclassed.
IndianCalendar usually should be instantiated using
Calendar.getInstance(ULocale)
passing in a ULocale
with the tag "@calendar=Indian"
.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.ibm.icu.util.Calendar
Calendar.FormatConfiguration, Calendar.WeekData
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Constant for Agrahayana, the 9th month of the Indian year.static final int
Constant for Asadha, the 4th month of the Indian year.static final int
Constant for Asvina, the 7th month of the Indian year.static final int
Constant for Bhadra, the 6th month of the Indian year.static final int
Constant for Chaitra, the 1st month of the Indian year.static final int
Constant for the Indian Era.static final int
Constant for Jyaistha, the 3rd month of the Indian year.static final int
Constant for Kartika, the 8th month of the Indian year.static final int
Constant for Magha, the 11th month of the Indian year.static final int
Constant for Pausa, the 10th month of the Indian year.static final int
Constant for Phalguna, the 12th month of the Indian year.static final int
Constant for Sravana, the 5th month of the Indian year.static final int
Constant for Vaisakha, the 2nd month of the Indian year.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, IS_LEAP_MONTH, 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, WALLTIME_FIRST, WALLTIME_LAST, WALLTIME_NEXT_VALID, WEDNESDAY, WEEK_OF_MONTH, WEEK_OF_YEAR, WEEKDAY, WEEKEND, WEEKEND_CEASE, WEEKEND_ONSET, YEAR, YEAR_WOY, ZONE_OFFSET
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs aIndianCalendar
using the current time in the default time zone with the defaultFORMAT
locale.IndianCalendar
(int year, int month, int date) Constructs aIndianCalendar
with the given date set in the default time zone with the defaultFORMAT
locale.IndianCalendar
(int year, int month, int date, int hour, int minute, int second) Constructs a IndianCalendar with the given date and time set for the default time zone with the defaultFORMAT
locale.IndianCalendar
(TimeZone zone) Constructs aIndianCalendar
based on the current time in the given time zone with the defaultFORMAT
locale.IndianCalendar
(TimeZone zone, ULocale locale) Constructs aIndianCalendar
based on the current time in the given time zone with the given locale.IndianCalendar
(TimeZone zone, Locale aLocale) Constructs aIndianCalendar
based on the current time in the given time zone with the given locale.IndianCalendar
(ULocale locale) Constructs aIndianCalendar
based on the current time in the default time zone with the given locale.IndianCalendar
(Date date) Constructs aIndianCalendar
with the given date set in the default time zone with the defaultFORMAT
locale.IndianCalendar
(Locale aLocale) Constructs aIndianCalendar
based on the current time in the default time zone with the given locale. -
Method Summary
Modifier and TypeMethodDescriptiongetType()
Returns the calendar type name string for this Calendar object.protected void
handleComputeFields
(int julianDay) Subclasses may override this method to compute several fields specific to each calendar system.protected int
handleComputeMonthStart
(int year, int month, boolean useMonth) Returns the Julian day number of day before the first day of the given month in the given extended year.protected int
Returns the extended year defined by the current fields.protected int
handleGetLimit
(int field, int limitType) Subclass API for defining limits of different types.protected int
handleGetMonthLength
(int extendedYear, int month) Returns the number of days in the given month of the given extended year of this calendar system.protected int
handleGetYearLength
(int extendedYear) Returns the number of days in the given extended year of this calendar system.Methods inherited from class com.ibm.icu.util.Calendar
add, after, before, clear, clear, clone, compareTo, complete, computeFields, computeGregorianFields, computeGregorianMonthStart, computeJulianDay, computeMillisInDay, computeMillisInDayLong, computeTime, computeZoneOffset, computeZoneOffset, equals, fieldDifference, fieldName, floorDivide, floorDivide, floorDivide, floorDivide, get, getActualMaximum, getActualMinimum, getAvailableLocales, getAvailableULocales, getDateAtTimePattern, getDateTimeFormat, getDateTimeFormat, getDateTimePattern, getDayOfWeekType, getDefaultDayInMonth, getDefaultMonthInYear, getDisplayName, getDisplayName, getFieldCount, getFieldResolutionTable, getFirstDayOfWeek, getGreatestMinimum, getGregorianDayOfMonth, getGregorianDayOfYear, getGregorianMonth, getGregorianYear, getInstance, getInstance, getInstance, getInstance, getInstance, getInstance, getKeywordValuesForLocale, getLeastMaximum, getLimit, getLocale, getMaximum, getMinimalDaysInFirstWeek, getMinimum, getRelatedYear, getRepeatedWallTimeOption, getSkippedWallTimeOption, getStamp, getTime, getTimeInMillis, getTimeZone, getWeekData, getWeekDataForRegion, getWeekendTransition, gregorianMonthLength, gregorianPreviousMonthLength, handleComputeJulianDay, handleCreateFields, handleGetDateFormat, handleGetDateFormat, handleGetDateFormat, handleGetDateFormat, hashCode, haveDefaultCentury, internalGet, internalGet, internalGetTimeInMillis, internalSet, isEquivalentTo, isGregorianLeapYear, isLenient, isSet, isWeekend, isWeekend, julianDayToDayOfWeek, julianDayToMillis, millisToJulianDay, newerField, newestStamp, pinField, prepareGetActual, resolveFields, roll, roll, set, set, set, set, setFirstDayOfWeek, setLenient, setMinimalDaysInFirstWeek, setRelatedYear, setRepeatedWallTimeOption, setSkippedWallTimeOption, setTime, setTimeInMillis, setTimeZone, setWeekData, toString, validateField, validateField, validateFields, weekNumber, weekNumber
-
Field Details
-
CHAITRA
public static final int CHAITRAConstant for Chaitra, the 1st month of the Indian year.- See Also:
-
VAISAKHA
public static final int VAISAKHAConstant for Vaisakha, the 2nd month of the Indian year.- See Also:
-
JYAISTHA
public static final int JYAISTHAConstant for Jyaistha, the 3rd month of the Indian year.- See Also:
-
ASADHA
public static final int ASADHAConstant for Asadha, the 4th month of the Indian year.- See Also:
-
SRAVANA
public static final int SRAVANAConstant for Sravana, the 5th month of the Indian year.- See Also:
-
BHADRA
public static final int BHADRAConstant for Bhadra, the 6th month of the Indian year.- See Also:
-
ASVINA
public static final int ASVINAConstant for Asvina, the 7th month of the Indian year.- See Also:
-
KARTIKA
public static final int KARTIKAConstant for Kartika, the 8th month of the Indian year.- See Also:
-
AGRAHAYANA
public static final int AGRAHAYANAConstant for Agrahayana, the 9th month of the Indian year.- See Also:
-
PAUSA
public static final int PAUSAConstant for Pausa, the 10th month of the Indian year.- See Also:
-
MAGHA
public static final int MAGHAConstant for Magha, the 11th month of the Indian year.- See Also:
-
PHALGUNA
public static final int PHALGUNAConstant for Phalguna, the 12th month of the Indian year.- See Also:
-
IE
public static final int IEConstant for the Indian Era. This is the only allowableERA
value for the Indian calendar.- See Also:
-
-
Constructor Details
-
IndianCalendar
public IndianCalendar()Constructs aIndianCalendar
using the current time in the default time zone with the defaultFORMAT
locale.- See Also:
-
IndianCalendar
Constructs aIndianCalendar
based on the current time in the given time zone with the defaultFORMAT
locale.- Parameters:
zone
- the given time zone.- See Also:
-
IndianCalendar
Constructs aIndianCalendar
based on the current time in the default time zone with the given locale.- Parameters:
aLocale
- the given locale.
-
IndianCalendar
Constructs aIndianCalendar
based on the current time in the default time zone with the given locale.- Parameters:
locale
- the given ulocale.
-
IndianCalendar
Constructs aIndianCalendar
based on the current time in the given time zone with the given locale.- Parameters:
zone
- the given time zone.aLocale
- the given locale.
-
IndianCalendar
Constructs aIndianCalendar
based on the current time in the given time zone with the given locale.- Parameters:
zone
- the given time zone.locale
- the given ulocale.
-
IndianCalendar
Constructs aIndianCalendar
with the given date set in the default time zone with the defaultFORMAT
locale.- Parameters:
date
- The date to which the new calendar is set.- See Also:
-
IndianCalendar
public IndianCalendar(int year, int month, int date) Constructs aIndianCalendar
with the given date set in the default time zone with the defaultFORMAT
locale. -
IndianCalendar
public IndianCalendar(int year, int month, int date, int hour, int minute, int second) Constructs a IndianCalendar with the given date and time set for the default time zone with the defaultFORMAT
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 January.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.- See Also:
-
-
Method Details
-
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.- Specified by:
handleGetExtendedYear
in classCalendar
- Returns:
- the extended year
-
handleGetYearLength
protected int handleGetYearLength(int extendedYear) 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.- Overrides:
handleGetYearLength
in classCalendar
-
handleGetMonthLength
protected int handleGetMonthLength(int extendedYear, int month) 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.- Overrides:
handleGetMonthLength
in classCalendar
-
handleComputeFields
protected void handleComputeFields(int julianDay) Subclasses may override this method to compute several fields specific to each calendar system. These are:- ERA
- YEAR
- MONTH
- DAY_OF_MONTH
- DAY_OF_YEAR
- EXTENDED_YEAR
In addition, subclasses should compute any subclass-specific fields, that is, fields from BASE_FIELD_COUNT to getFieldCount() - 1.
The default implementation in
Calendar
implements a pure proleptic Gregorian calendar.- Overrides:
handleComputeFields
in classCalendar
-
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
- Specified by:
handleGetLimit
in classCalendar
- Parameters:
field
- one of the above field numberslimitType
- one ofMINIMUM
,GREATEST_MINIMUM
,LEAST_MAXIMUM
, orMAXIMUM
-
handleComputeMonthStart
protected int handleComputeMonthStart(int year, 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.- Specified by:
handleComputeMonthStart
in classCalendar
- Parameters:
year
- the extended yearmonth
- the zero-based month, or 0 if useMonth is falseuseMonth
- 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
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
-