@tubular/time
Version:
Date/time, IANA timezones, leap seconds, TAI/UTC conversions, calendar with settable Julian/Gregorian switchover
112 lines • 4.27 kB
TypeScript
export declare const MIN_YEAR = -271820;
export declare const MAX_YEAR = 275759;
export declare const MINUTE_MSEC = 60000;
export declare const HOUR_MSEC = 3600000;
export declare const DAY_MSEC = 86400000;
export declare const DAY_SEC = 86400;
export declare const DAY_MINUTES = 1440;
export declare const UNIX_TIME_ZERO_AS_JULIAN_DAY = 2440587.5;
export declare const JD_J2000 = 2451545;
export declare const DELTA_TDT_SEC = 32.184;
export declare const DELTA_TDT_MSEC = 32184;
export declare const DELTA_TDT_DAYS: number;
export declare const DELTA_MJD = 2400000.5;
export declare const enEras: string[];
export declare const enMonths: string[];
export declare const enMonthsShort: string[];
export declare const enWeekdays: string[];
export declare const enWeekdaysShort: string[];
export declare const enWeekdaysMin: string[];
declare type Formatter = (dt: any, fmt: string, localeOverride?: string | string[]) => string;
export declare let formatter: Formatter;
export declare const setFormatter: (fmt: Formatter) => any;
declare type DeltaTUpdater = (post2019values?: number[], lastKnownLeapSecond?: YMDDate) => void;
export declare let deltaTUpdater: DeltaTUpdater;
export declare const setDeltaTUpdater: (dtu: DeltaTUpdater) => any;
/**
* Specifies a calendar date by year, month, and day. Optionally provides day number and boolean flag indicating Julian
* or Gregorian.
*/
export interface YMDDate {
/** Year as signed integer (0 = 1 BCE, -1 = 2 BCE, etc.). */
y?: number;
year?: number;
/** Quarter as 1-4. */
q?: number;
quarter?: number;
/** Month as 1-12. */
m?: number;
month?: number;
/** Day of month. */
d?: number;
day?: number;
/** Day of week as 0-6 for Sunday-Saturday. */
dow?: number;
dayOfWeek?: number;
/** Day of week month index, 1-5, e.g. 2 for 2nd Tuesday of the month. */
dowmi?: number;
dayOfWeekMonthIndex?: number;
/** Day of year. */
dy?: number;
dayOfYear?: number;
/** Day number where 1970-01-01 = 0. */
n?: number;
epochDay?: number;
/** true if this is a Julian calendar date, false for Gregorian. */
j?: boolean;
isJulian?: boolean;
/** ISO year for week of year. */
yw?: number;
yearByWeek?: number;
/** ISO week of year. */
w?: number;
week?: number;
/** ISO day or week. */
dw?: number;
dayByWeek?: number;
/** Locale year for week of year. */
ywl?: number;
yearByWeekLocale?: number;
/** Locale week of year. */
wl?: number;
weekLocale?: number;
/** Locale day or week. */
dwl?: number;
dayByWeekLocale?: number;
/** Error, if any. */
error?: string;
}
export interface DateAndTime extends YMDDate {
hrs?: number;
hour?: number;
min?: number;
minute?: number;
sec?: number;
second?: number;
millis?: number;
utcOffset?: number;
dstOffset?: number;
occurrence?: number;
deltaTai?: number;
/** Julian days, ephemeris. */
jde?: number;
/** Modified Julian days, ephemeris. */
mjde?: number;
/** Julian days, UT. */
jdu?: number;
/** Modified Julian days, UT. */
mjdu?: number;
}
export declare function syncDateAndTime<T extends YMDDate | DateAndTime>(obj: T): T;
export declare function purgeAliasFields<T extends YMDDate | DateAndTime>(obj: T, keepLongForm?: boolean): T;
export declare function minimizeFields<T extends YMDDate | DateAndTime>(obj: T): T;
export declare function orderFields<T extends YMDDate | DateAndTime>(obj: T): T;
export declare function validateDateAndTime(obj: YMDDate | DateAndTime): void;
export declare function parseISODateTime(date: string, allowLeapSecond?: boolean): DateAndTime;
export declare function parseTimeOffset(offset: string, roundToMinutes?: boolean): number;
export declare function getDatePart(format: Intl.DateTimeFormat, date: number, partName: string): string;
export declare function getDatePart(fields: Intl.DateTimeFormatPart[], partName: string): string;
export declare function getDateValue(format: Intl.DateTimeFormat, date: number, partName: string): number;
export declare function getDateValue(fields: Intl.DateTimeFormatPart[], partName: string): number;
export {};
//# sourceMappingURL=common.d.ts.map