UNPKG

@thi.ng/date

Version:

Datetime types, relative dates, math, iterators, composable formatters, locales

122 lines 3.33 kB
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