Class

GregorianDate

GregorianDate(paramsopt)

Construct a new Gregorian date object. The constructor parameters can contain any of the following properties:

  • unixtime - sets the time of this instance according to the given unix time. Unix time is the number of milliseconds since midnight on Jan 1, 1970.
  • julianday - sets the time of this instance according to the given Julian Day instance or the Julian Day given as a float
  • year - any integer, including 0
  • month - 1 to 12, where 1 means January, 2 means February, etc.
  • day - 1 to 31
  • hour - 0 to 23. A formatter is used to display 12 hour clocks, but this representation is always done with an unambiguous 24 hour representation
  • minute - 0 to 59
  • second - 0 to 59
  • millisecond - 0 to 999
  • dst - boolean used to specify whether the given time components are intended to be in daylight time or not. This is only used in the overlap time when transitioning from DST to standard time, and the time components are ambiguous. Otherwise at all other times of the year, this flag is ignored. If you specify the date using unix time (UTC) or a julian day, then the time is already unambiguous and this flag does not need to be specified.

    For example, in the US, the transition out of daylight savings time in 2014 happens at Nov 2, 2014 2:00am Daylight Time, when the time falls back to Nov 2, 2014 1:00am Standard Time. If you give a date/time components as "Nov 2, 2014 1:30am", then there are two 1:30am times in that day, and you would have to give the standard flag to indicate which of those two you mean. (dst=true means daylight time, dst=false means standard time).

  • timezone - the TimeZone instance or time zone name as a string of this gregorian date. The date/time is kept in the local time. The time zone is used later if this date is formatted according to a different time zone and the difference has to be calculated, or when the date format has a time zone component in it.
  • locale - locale for this gregorian date. If the time zone is not given, it can be inferred from this locale. For locales that span multiple time zones, the one with the largest population is chosen as the one that represents the locale.
  • date - use the given intrinsic Javascript date to initialize this one.
  • onLoad - a callback function to call when this date object is fully loaded. When the onLoad option is given, this date object will attempt to load any missing locale data using the ilib loader callback. When the constructor is done (even if the data is already preassembled), the onLoad function is called with the current instance as a parameter, so this callback can be used with preassembled or dynamic loading or a mix of the two.
  • sync - tell whether to load any missing locale data synchronously or asynchronously. If this option is given as "false", then the "onLoad" callback must be given, as the instance returned from this constructor will not be usable for a while.
  • loadParams - an object containing parameters to pass to the loader callback function when locale data is missing. The parameters are not interpretted or modified in any way. They are simply passed along. The object may contain any property/value pairs as long as the calling code is in agreement with the loader callback function as to what those parameters mean.

If the constructor is called with another Gregorian date instance instead of a parameter block, the other instance acts as a parameter block and its settings are copied into the current instance.

If the constructor is called with no arguments at all or if none of the properties listed above from unixtime through millisecond are present, then the date components are filled in with the current date at the time of instantiation. Note that if you do not give the time zone when defaulting to the current time and the time zone for all of ilib was not set with ilib.setTimeZone(), then the time zone will default to UTC ("Universal Time, Coordinated" or "Greenwich Mean Time").

If any of the properties from year through millisecond are not specified in the params, it is assumed that they have the smallest possible value in the range for the property (zero or one).

Constructor

# new GregorianDate(paramsopt)

Parameters:
Name Type Attributes Description
params Object <optional>

parameters that govern the settings and behaviour of this Gregorian date

View Source GregorianDate.js, line 126

Extends

Members

number

# day

The day of the month. This ranges from 1 to 31.

View Source GregorianDate.js, line 319

number

# hour

The hour of the day. This can be a number from 0 to 23, as times are stored unambiguously in the 24-hour clock.

View Source GregorianDate.js, line 326

number

# millisecond

The millisecond of the second. Ranges from 0 to 999.

View Source GregorianDate.js, line 344

number

# minute

The minute of the hours. Ranges from 0 to 59.

View Source GregorianDate.js, line 332

number

# month

The month number, ranging from 1 (January) to 12 (December).

View Source GregorianDate.js, line 313

number

# second

The second of the minute. Ranges from 0 to 59.

View Source GregorianDate.js, line 338

number

# year

Year in the Gregorian calendar.

View Source GregorianDate.js, line 307

Methods

# after(dow) → {IDate}

Return a new date instance in the current calendar that represents the first instance of the given day of the week after the current date. The day of the week is encoded as a number where 0 = Sunday, 1 = Monday, etc.

Parameters:
Name Type Description
dow number

the day of the week after the current date that is being sought

Inherited From:

View Source IDate.js, line 177

the date being sought

IDate

# before(dow) → {IDate}

Return a new date instance in the current calendar that represents the first instance of the given day of the week before the current date. The day of the week is encoded as a number where 0 = Sunday, 1 = Monday, etc.

Parameters:
Name Type Description
dow number

the day of the week before the current date that is being sought

Inherited From:

View Source IDate.js, line 162

the date being sought

IDate

# protected firstSunday(year) → {number}

Return the rd number of the first Sunday of the given ISO year.

Parameters:
Name Type Description
year number

the year for which the first Sunday is being sought

Inherited From:

View Source IDate.js, line 304

the rd of the first Sunday of the ISO year

number

# getCalendar() → {string}

Return the name of the calendar that governs this date.

View Source GregorianDate.js, line 450

a string giving the name of the calendar

string

# getDayOfWeek() → {number}

Return the day of the week of this date. The day of the week is encoded as number from 0 to 6, with 0=Sunday, 1=Monday, etc., until 6=Saturday.

View Source GregorianDate.js, line 412

the day of the week

number

# getDayOfYear() → {number}

Return the ordinal day of the year. Days are counted from 1 and proceed linearly up to 365, regardless of months or weeks, etc. That is, January 1st is day 1, and December 31st is 365 in regular years, or 366 in leap years.

View Source GregorianDate.js, line 423

the ordinal day of the year

number

# getEra() → {number}

Return the era for this date as a number. The value for the era for Gregorian calendars is -1 for "before the common era" (BCE) and 1 for "the common era" (CE). BCE dates are any date before Jan 1, 1 CE. In the proleptic Gregorian calendar, there is a year 0, so any years that are negative or zero are BCE. In the Julian calendar, there is no year 0. Instead, the calendar goes straight from year -1 to 1.

View Source GregorianDate.js, line 441

1 if this date is in the common era, -1 if it is before the common era

number

# getJSDate() → {Date|undefined}

Return a Javascript Date object that is equivalent to this date object.

Inherited From:

View Source IDate.js, line 220

a javascript Date object

Date | undefined

# getJulianDay() → {number}

Return the Julian Day equivalent to this calendar date as a number.

Inherited From:

View Source IDate.js, line 253

the julian date equivalent of this date

number

# protected getRataDie() → {number}

Return the Rata Die (fixed day) number of this date.

Inherited From:

View Source IDate.js, line 231

the rd date as a number

number

# getTime() → {number}

Return the unix time equivalent to this date instance. Unix time is the number of milliseconds since midnight on Jan 1, 1970 UTC (Gregorian). This method only returns a valid number for dates between midnight, Jan 1, 1970 UTC (Gregorian) and Jan 19, 2038 at 3:14:07am UTC (Gregorian) when the unix time runs out. If this instance encodes a date outside of that range, this method will return -1. For date types that are not Gregorian, the point in time represented by this date object will only give a return value if it is in the correct range in the Gregorian calendar as given previously.

Inherited From:

View Source IDate.js, line 63

a number giving the unix time, or -1 if the date is outside the valid unix time range

number

# getTimeExtended() → {number}

Return the extended unix time equivalent to this Gregorian date instance. Unix time is the number of milliseconds since midnight on Jan 1, 1970 UTC. Traditionally unix time (or the type "time_t" in C/C++) is only encoded with an unsigned 32 bit integer, and thus runs out on Jan 19, 2038. However, most Javascript engines encode numbers well above 32 bits and the Date object allows you to encode up to 100 million days worth of time after Jan 1, 1970, and even more interestingly, 100 million days worth of time before Jan 1, 1970 as well. This method returns the number of milliseconds in that extended range. If this instance encodes a date outside of that range, this method will return NaN.

Inherited From:

View Source IDate.js, line 81

a number giving the extended unix time, or Nan if the date is outside the valid extended unix time range

number

# getTimeZone() → {string|undefined}

Return the time zone associated with this date, or undefined if none was specified in the constructor.

Inherited From:

View Source IDate.js, line 275

the name of the time zone for this date instance

string | undefined

# getWeekOfMonth(locale) → {number}

Return the ordinal number of the week within the month. The first week of a month is the first one that contains 4 or more days in that month. If any days precede this first week, they are marked as being in week 0. This function returns values from 0 through 6.

The locale is a required parameter because different locales that use the same Gregorian calendar consider different days of the week to be the beginning of the week. This can affect the week of the month in which some days are located.

Parameters:
Name Type Description
locale Locale | string

the locale or locale spec to use when figuring out the first day of the week

Inherited From:

View Source IDate.js, line 363

the ordinal number of the week within the current month

number

# getWeekOfYear() → {number}

Return the ISO 8601 week number in the current year for the current date. The week number ranges from 0 to 55, as some years have 55 weeks assigned to them in some calendars.

Inherited From:

View Source IDate.js, line 329

the week number for the current date

number

# onOrAfter(dow) → {IDate}

Return a new Gregorian date instance that represents the first instance of the given day of the week on or after the current date. The day of the week is encoded as a number where 0 = Sunday, 1 = Monday, etc.

Parameters:
Name Type Description
dow number

the day of the week on or after the current date that is being sought

Inherited From:

View Source IDate.js, line 207

the date being sought

IDate

# onOrBefore(dow) → {IDate}

Return a new Gregorian date instance that represents the first instance of the given day of the week on or before the current date. The day of the week is encoded as a number where 0 = Sunday, 1 = Monday, etc.

Parameters:
Name Type Description
dow number

the day of the week on or before the current date that is being sought

Inherited From:

View Source IDate.js, line 192

the date being sought

IDate

# setJulianDay(date)

Set the date of this instance using a Julian Day.

Parameters:
Name Type Description
date number | JulianDay

the Julian Day to use to set this date

Inherited From:

View Source IDate.js, line 261

# protected setRd(rd)

Set the date components of this instance based on the given rd.

Parameters:
Name Type Description
rd number

the rata die date to set

Inherited From:

View Source IDate.js, line 240

# setTime(millis)

Set the time of this instance according to the given unix time. Unix time is the number of milliseconds since midnight on Jan 1, 1970.

Parameters:
Name Type Description
millis number

the unix time to set this date to in milliseconds

Inherited From:

View Source IDate.js, line 91

# setTimeZone(tzNameopt)

Set the time zone associated with this date.

Parameters:
Name Type Attributes Description
tzName string <optional>

the name of the time zone to set into this date instance, or "undefined" to unset the time zone

Inherited From:

View Source IDate.js, line 284