UNPKG

@rr0/time

Version:
171 lines 5.33 kB
/** @import { Level0Component } from "../component/index.mjs" */ /** @import { EDTFParser } from "../../EDTFParser.mjs" */ /** * @typedef {Object} Level0DateSpec * @property {Level0Year|number} [year] * @property {Level0Month|number} [month] * @property {Level0Day|number} [day] * @property {Level0Hour|number} [hour] * @property {Level0Minute|number} [minute] * @property {Level0Second|number} [second] * @property {Level0Timeshift|number} [timeshift] */ /** * @template {Level0Year} [Y = Level0Year] * @template {Level0Month} [MM = Level0Month] * @template {Level0Day} [D = Level0Day] * @template {Level0Hour} [H = Level0Hour] * @template {Level0Minute} [M = Level0Minute] * @template {Level0Second} [S = Level0Second] * @template {Level0Timeshift} [Z = Level0Timeshift] */ export class Level0Date<Y extends Level0Year = Level0Year, MM extends Level0Month = Level0Month, D extends Level0Day = Level0Day, H extends Level0Hour = Level0Hour, M extends Level0Minute = Level0Minute, S extends Level0Second = Level0Second, Z extends Level0Timeshift = Level0Timeshift> { /** * @param {string} spec * @param {EDTFParser} parser * @return {Level0Date} */ static fromString(spec: string, parser?: EDTFParser<any>): Level0Date; /** * @param {Date} date * @return {Level0Date} */ static fromDate(date: Date): Level0Date; /** * Creates a level 0 current date. * * @return {Level0Date} */ static newInstance(): Level0Date; /** * @param {Level0DateSpec} [spec] */ constructor(spec?: Level0DateSpec); /** * @param {Y|number|undefined} value */ set year(value: number | Y); /** * @return {Y|undefined} */ get year(): Y; /** * @param {MM|number|undefined} value */ set month(value: number | MM); /** * @return {MM|undefined} */ get month(): MM; /** * @param {D|number|undefined} value */ set day(value: number | D); /** * @return {D|undefined} */ get day(): D; /** * @param {H|number|undefined} value */ set hour(value: number | H); /** * @return {H|undefined} */ get hour(): H; /** * @param {M|number|undefined} value */ set minute(value: number | M); /** * @return {M||undefined} */ get minute(): M; /** * @param {S|number|undefined} value */ set second(value: number | S); /** * @return {S|undefined} */ get second(): S; /** * @param {Level0Timeshift|number|undefined} value */ set timeshift(value: number | Level0Timeshift); /** * @return {Level0Timeshift|undefined} */ get timeshift(): Level0Timeshift; /** * @type {Level0Factory} */ get factory(): Level0Factory<any, any, any, any, any, any, any>; /** * Return the difference between this date and a previous one. * * @param {Level0Date} other A date before. * @return {number} The difference, in milliseconds. */ compare(other: Level0Date): number; /** * Returns the duration between this date and a previous one. * Basically, it is a Duration built from #compare() * * @param {typeof this} other A date before. * @return {Level0Duration} */ delta(other: typeof this): Level0Duration<any, any, any, any, any, any>; /** * How many milliseconds since 0000-00-00T00:00:00. * * @return {number} */ getTime(): number; /** * @param {typeof this} other * @return {boolean} */ isEqual(other: typeof this): boolean; /** * @param {typeof this} other * @return {boolean} */ isBefore(other: typeof this): boolean; /** * @param {typeof this} other * @return {boolean} */ isAfter(other: typeof this): boolean; clone(): Level0Date<Level0Year, Level0Month, Level0Day, Level0Hour, Level0Minute, Level0Second, Level0Timeshift>; previous(): Level0Date<Level0Year, Level0Month, Level0Day, Level0Hour, Level0Minute, Level0Second, Level0Timeshift>; next(): Level0Date<Level0Year, Level0Month, Level0Day, Level0Hour, Level0Minute, Level0Second, Level0Timeshift>; toString(renderer?: Level0DateRenderer): string; /** * @return {Level0DateSpec} */ toSpec(): Level0DateSpec; toJSON(): Level0DateSpec; #private; } export type Level0DateSpec = { year?: Level0Year | number; month?: Level0Month | number; day?: Level0Day | number; hour?: Level0Hour | number; minute?: Level0Minute | number; second?: Level0Second | number; timeshift?: Level0Timeshift | number; }; import { Level0Year } from "../year/index.mjs"; import { Level0Month } from "../month/index.mjs"; import { Level0Day } from "../day/Level0Day.mjs"; import { Level0Hour } from "../hour/index.mjs"; import { Level0Minute } from "../minute/index.mjs"; import { Level0Second } from "../second/index.mjs"; import { Level0Timeshift } from "../timeshift/index.mjs"; import { Level0Factory } from "../Level0Factory.mjs"; import { Level0Duration } from "../duration/index.mjs"; import { Level0DateRenderer } from "./Level0DateRenderer.mjs"; import type { EDTFParser } from "../../EDTFParser.mjs"; //# sourceMappingURL=Level0Date.d.mts.map