Added in API level 24

IndianCalendar


open class IndianCalendar : Calendar
kotlin.Any
   ↳ android.icu.util.Calendar
   ↳ android.icu.util.IndianCalendar

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 android.icu.util.Calendar#getInstance(ULocale) passing in a ULocale with the tag "@calendar=Indian".

Summary

Constants
static Int

Constant for Agrahayana, the 9th month of the Indian year.

static Int

Constant for Asadha, the 4th month of the Indian year.

static Int

Constant for Asvina, the 7th month of the Indian year.

static Int

Constant for Bhadra, the 6th month of the Indian year.

static Int

Constant for Chaitra, the 1st month of the Indian year.

static Int

Constant for the Indian Era.

static Int

Constant for Jyaistha, the 3rd month of the Indian year.

static Int

Constant for Kartika, the 8th month of the Indian year.

static Int

Constant for Magha, the 11th month of the Indian year.

static Int

Constant for Pausa, the 10th month of the Indian year.

static Int

Constant for Phalguna, the 12th month of the Indian year.

static Int

Constant for Sravana, the 5th month of the Indian year.

static Int

Constant for Vaisakha, the 2nd month of the Indian year.

Inherited constants
Public constructors

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

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

IndianCalendar(zone: TimeZone!, locale: ULocale!)

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

IndianCalendar(zone: TimeZone!, aLocale: Locale!)

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

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

IndianCalendar(year: Int, month: Int, date: Int)

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

IndianCalendar(year: Int, month: Int, date: Int, hour: Int, minute: Int, second: Int)

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

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

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

Public methods
open String!

[icu] Returns the calendar type name string for this Calendar object.

Protected methods
open Unit

Subclasses may override this method to compute several fields specific to each calendar system.

open Int
handleComputeMonthStart(year: Int, month: Int, useMonth: Boolean)

Returns the Julian day number of day before the first day of the given month in the given extended year.

open Int

Returns the extended year defined by the current fields.

open Int
handleGetLimit(field: Int, limitType: Int)

Subclass API for defining limits of different types.

open Int
handleGetMonthLength(extendedYear: Int, month: Int)

Returns the number of days in the given month of the given extended year of this calendar system.

open Int
handleGetYearLength(extendedYear: Int)

Returns the number of days in the given extended year of this calendar system.

Inherited functions
Inherited properties

Constants

AGRAHAYANA

Added in API level 24
static val AGRAHAYANA: Int

Constant for Agrahayana, the 9th month of the Indian year.

Value: 8

ASADHA

Added in API level 24
static val ASADHA: Int

Constant for Asadha, the 4th month of the Indian year.

Value: 3

ASVINA

Added in API level 24
static val ASVINA: Int

Constant for Asvina, the 7th month of the Indian year.

Value: 6

BHADRA

Added in API level 24
static val BHADRA: Int

Constant for Bhadra, the 6th month of the Indian year.

Value: 5

CHAITRA

Added in API level 24
static val CHAITRA: Int

Constant for Chaitra, the 1st month of the Indian year.

Value: 0

IE

Added in API level 24
static val IE: Int

Constant for the Indian Era. This is the only allowable ERA value for the Indian calendar.

Value: 0

JYAISTHA

Added in API level 24
static val JYAISTHA: Int

Constant for Jyaistha, the 3rd month of the Indian year.

Value: 2

KARTIKA

Added in API level 24
static val KARTIKA: Int

Constant for Kartika, the 8th month of the Indian year.

Value: 7

MAGHA

Added in API level 24
static val MAGHA: Int

Constant for Magha, the 11th month of the Indian year.

Value: 10

PAUSA

Added in API level 24
static val PAUSA: Int

Constant for Pausa, the 10th month of the Indian year.

Value: 9

PHALGUNA

Added in API level 24
static val PHALGUNA: Int

Constant for Phalguna, the 12th month of the Indian year.

Value: 11

SRAVANA

Added in API level 24
static val SRAVANA: Int

Constant for Sravana, the 5th month of the Indian year.

Value: 4

VAISAKHA

Added in API level 24
static val VAISAKHA: Int

Constant for Vaisakha, the 2nd month of the Indian year.

Value: 1

Public constructors

IndianCalendar

Added in API level 24
IndianCalendar()

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

IndianCalendar

Added in API level 24
IndianCalendar(zone: TimeZone!)

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

Parameters
zone TimeZone!: the given time zone.

IndianCalendar

Added in API level 24
IndianCalendar(
    zone: TimeZone!,
    locale: ULocale!)

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

IndianCalendar

Added in API level 24
IndianCalendar(
    zone: TimeZone!,
    aLocale: Locale!)

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

IndianCalendar

Added in API level 24
IndianCalendar(locale: ULocale!)

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

Parameters
locale ULocale!: the given ulocale.

IndianCalendar

Added in API level 24
IndianCalendar(
    year: Int,
    month: Int,
    date: Int)

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

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

IndianCalendar

Added in API level 24
IndianCalendar(
    year: Int,
    month: Int,
    date: Int,
    hour: Int,
    minute: Int,
    second: Int)

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

IndianCalendar

Added in API level 24
IndianCalendar(date: Date!)

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

IndianCalendar

Added in API level 24
IndianCalendar(aLocale: Locale!)

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

Parameters
aLocale Locale!: the given locale.

Public methods

getType

Added in API level 24
open fun getType(): String!

[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

Return
String! legacy calendar type name string

Protected methods

handleComputeFields

Added in API level 24
protected open fun handleComputeFields(julianDay: Int): Unit

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
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.

The default implementation in Calendar implements a pure proleptic Gregorian calendar.

handleComputeMonthStart

Added in API level 24
protected open fun handleComputeMonthStart(
    year: Int,
    month: Int,
    useMonth: Boolean
): Int

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 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
Return
Int the Julian day number of the day before the first day of the given month and year

handleGetExtendedYear

Added in API level 24
protected open fun handleGetExtendedYear(): Int

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.

Return
Int the extended year

handleGetLimit

Added in API level 24
protected open fun handleGetLimit(
    field: Int,
    limitType: Int
): Int

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

Added in API level 24
protected open fun handleGetMonthLength(
    extendedYear: Int,
    month: Int
): Int

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.

handleGetYearLength

Added in API level 24
protected open fun handleGetYearLength(extendedYear: Int): Int

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.