UNPKG

@rr0/time

Version:
90 lines 3.9 kB
/** @import { EDTFParser } from "../../EDTFParser.mjs" */ /** @import { Level2Year } from "../year/Level2Year.mjs" */ /** @import { Level2Month } from "../month/Level2Month.mjs" */ /** @import { Level2Day } from "../day/Level2Day.mjs" */ /** @import { Level2Hour } from "../hour/Level2Hour.mjs" */ /** @import { Level2Minute } from "../minute/Level2Minute.mjs" */ /** @import { Level2Second } from "../second/Level2Second.mjs" */ /** @import { Level2Timeshift } from "../timeshift/Level2Timeshift.mjs" */ /** @import { Level2Factory } from "../Level2Factory.mjs" */ /** * @typedef {Object} Level2DateSpec * @property {Level2Year|number} year * @property {Level2Month|number} [month] * @property {Level2Day|number} [day] * @property {Level2Hour|number} [hour] * @property {Level2Minute|number} [minute] * @property {Level2Second|number} [second] * @property {Level2Timeshift|number} [timeshift] */ /** * A level 2 EDTF Date. * * @template {Level2Year} [Y=Level2Year] * @template {Level2Month} [MM=Level2Month] * @template {Level2Day} [D=Level2Day] * @template {Level2Hour} [H=Level2Hour] * @template {Level2Minute} [M=Level2Minute] * @template {Level2Second} [S=Level2Second] * @template {Level2Timeshift} [Z=Level2Timeshift] * @extends {Level1Date<Level2Year, Level2Month, Level2Day, Level2Hour, Level2Minute, Level2Second, Level2Timeshift>} */ export class Level2Date<Y extends Level2Year = Level2Year, MM extends Level2Month = Level2Month, D extends Level2Day = Level2Day, H extends Level2Hour = Level2Hour, M extends Level2Minute = Level2Minute, S extends Level2Second = Level2Second, Z extends Level2Timeshift = Level2Timeshift> extends Level1Date<Level2Year, Level2Month, Level2Day, Level2Hour, Level2Minute, Level2Second, Level2Timeshift> { /** * @param {Date} date * @return {Level2Date} */ static fromDate(date: Date): Level2Date; /** * @param {string} str An EDTF level 0-2 string * @param {EDTFParser} parser * @return {Level2Date<Level2Year,Level2Month>} */ static fromString(str: string, parser?: EDTFParser<any>): Level2Date<Level2Year, Level2Month>; static newInstance(): Level2Date<Level2Year, Level2Month, Level2Day, Level2Hour, Level2Minute, Level2Second, Level2Timeshift>; /** * @param {Level2DateSpec|undefined} [spec] */ constructor(spec?: Level2DateSpec | undefined); /** * @param {Level2Year|undefined} value */ set year(value: Level2Year); /** * @return {Level2Year|undefined} */ get year(): Level2Year; /** * @param {Level2Month|undefined} value */ set month(value: Level2Month); /** * @return {Level2Month|undefined} */ get month(): Level2Month; /** * @type {Level2Factory} */ get factory(): Level2Factory<any, any, any, any, any, any, any>; clone(): Level2Date<Level2Year, Level2Month, Level2Day, Level2Hour, Level2Minute, Level2Second, Level2Timeshift>; } export type Level2DateSpec = { year: Level2Year | number; month?: Level2Month | number; day?: Level2Day | number; hour?: Level2Hour | number; minute?: Level2Minute | number; second?: Level2Second | number; timeshift?: Level2Timeshift | number; }; import type { Level2Year } from "../year/Level2Year.mjs"; import type { Level2Month } from "../month/Level2Month.mjs"; import type { Level2Day } from "../day/Level2Day.mjs"; import type { Level2Hour } from "../hour/Level2Hour.mjs"; import type { Level2Minute } from "../minute/Level2Minute.mjs"; import type { Level2Second } from "../second/Level2Second.mjs"; import type { Level2Timeshift } from "../timeshift/Level2Timeshift.mjs"; import { Level1Date } from "../../level1/date/Level1Date.mjs"; import type { Level2Factory } from "../Level2Factory.mjs"; import type { EDTFParser } from "../../EDTFParser.mjs"; //# sourceMappingURL=Level2Date.d.mts.map