@thi.ng/date
Version:
Datetime types, relative dates, math, iterators, composable formatters, locales
122 lines • 3.33 kB
TypeScript
import type { ICompare, ICopy, IEqualsDelta, IEquiv } from "@thi.ng/api";
import { type MaybeDate, type Period, type Precision } from "./api.js";
export declare const dateTime: (epoch?: MaybeDate, prec?: Precision) => DateTime;
/**
* Epoch abstraction with adjustable coarseness/precision. All date fields in
* UTC only.
*/
export declare class DateTime implements ICopy<DateTime>, ICompare<MaybeDate>, IEquiv, IEqualsDelta<MaybeDate> {
t: number;
s: number;
m: number;
h: number;
d: number;
M: number;
y: number;
constructor(epoch?: MaybeDate, prec?: Precision);
/**
* Readonly property, returning 1-based quarter
*
* @remarks
* - 1 = Jan - Mar
* - 2 = Apr - Jun
* - 3 = Jul - Sep
* - 4 = Oct - Dec
*/
get q(): number;
/**
* Alias readonly property, same as {@link DateTime.weekInYear}.
*/
get w(): number;
set(d: MaybeDate): this;
copy(): DateTime;
getTime(): number;
withPrecision(prec: Precision): DateTime;
setPrecision(prec: Precision): this;
compare(d: MaybeDate): number;
/**
* Returns true if this instance is before the given date, i.e. if
* `this.compare(d) < 0`.
*
* @param d -
*/
isBefore(d: MaybeDate): boolean;
/**
* Returns true if this instance is before the given date, i.e. if
* `this.compare(d) > 0`.
*
* @param d -
*/
isAfter(d: MaybeDate): boolean;
equiv(o: any): boolean;
eqDelta(d: MaybeDate, eps?: number): boolean;
daysInMonth(): number;
dayInYear(): number;
/**
* Returns week number according to ISO8601.
*
* @remarks
* Reference:
* https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system
*
*/
weekInYear(): number;
/**
* Leap years are multiple of 4, excludingcentennial years that aren’t
* multiples of 400.
*/
isLeapYear(): boolean;
incMillisecond(): number;
decMillisecond(): number;
incSecond(): number;
decSecond(): number;
incMinute(): number;
decMinute(): number;
incHour(): number;
decHour(): number;
incDay(): number;
decDay(): number;
incWeek(): number;
decWeek(): number;
incMonth(): number;
decMonth(): number;
incQuarter(): number;
decQuarter(): number;
incYear(): number;
decYear(): number;
/**
* Returns a new `DateTime` instance relative to this date, but with given
* period added/subtracted.
*
* @param x -
* @param prec -
*/
add(x: number, prec: Period): DateTime;
toDate(): Date;
toJSON(): string;
toString(): string;
/**
* Returns formatted version using current {@link LOCALE.dateTime}
* formatter.
*
* @remarks
* The host environment's locale is NOT used. Only the currently active
* `LOCALE` is relevant.
*/
toLocaleString(): string;
toISOString(): string;
valueOf(): number;
}
/**
* Coerces `x` to a {@link DateTime} instance.
*
* @param x -
*/
export declare const ensureDateTime: (x: MaybeDate, prec?: Precision) => DateTime;
/**
* Returns true if `x` is a {@link MaybeDate}.
*
* @param x -
*/
export declare const maybeIsDate: (x: any) => x is string | number | DateTime | Date;
//# sourceMappingURL=datetime.d.ts.map