UNPKG

@silane/datetime

Version:

Date and time library similar to Python's "datetime" package.

428 lines (427 loc) 10 kB
/** * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcTimedeltaReturn} * * @overload * @param {!DateTime} dtobj * @returns {!DtcalcDatetimeReturn} * * @overload * @param {!Date} dtobj * @returns {!DtcalcDateReturn} * * @overload * @param {!Time} dtobj * @returns {!DtcalcTimeReturn} * * @template T * @overload * @param {!T} dtobj * @returns {!DtcalcReturn<T>} */ export function dtcalc<T>(dtobj: TimeDelta): DtcalcTimedeltaReturn; /** * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcTimedeltaReturn} * * @overload * @param {!DateTime} dtobj * @returns {!DtcalcDatetimeReturn} * * @overload * @param {!Date} dtobj * @returns {!DtcalcDateReturn} * * @overload * @param {!Time} dtobj * @returns {!DtcalcTimeReturn} * * @template T * @overload * @param {!T} dtobj * @returns {!DtcalcReturn<T>} */ export function dtcalc<T>(dtobj: DateTime): DtcalcDatetimeReturn; /** * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcTimedeltaReturn} * * @overload * @param {!DateTime} dtobj * @returns {!DtcalcDatetimeReturn} * * @overload * @param {!Date} dtobj * @returns {!DtcalcDateReturn} * * @overload * @param {!Time} dtobj * @returns {!DtcalcTimeReturn} * * @template T * @overload * @param {!T} dtobj * @returns {!DtcalcReturn<T>} */ export function dtcalc<T>(dtobj: Date): DtcalcDateReturn; /** * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcTimedeltaReturn} * * @overload * @param {!DateTime} dtobj * @returns {!DtcalcDatetimeReturn} * * @overload * @param {!Date} dtobj * @returns {!DtcalcDateReturn} * * @overload * @param {!Time} dtobj * @returns {!DtcalcTimeReturn} * * @template T * @overload * @param {!T} dtobj * @returns {!DtcalcReturn<T>} */ export function dtcalc<T>(dtobj: Time): DtcalcTimeReturn; /** * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcTimedeltaReturn} * * @overload * @param {!DateTime} dtobj * @returns {!DtcalcDatetimeReturn} * * @overload * @param {!Date} dtobj * @returns {!DtcalcDateReturn} * * @overload * @param {!Time} dtobj * @returns {!DtcalcTimeReturn} * * @template T * @overload * @param {!T} dtobj * @returns {!DtcalcReturn<T>} */ export function dtcalc<T>(dtobj: T): DtcalcReturn<T>; import { TimeDelta } from './datetime.js'; /** * @extends {DtcalcComparableReturn<TimeDelta>} */ declare class DtcalcTimedeltaReturn extends DtcalcComparableReturn<TimeDelta> { /** * @param {!TimeDelta} value */ constructor(value: TimeDelta); /** * Add. * * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcTimedeltaReturn} * * @overload * @param {!DateTime} dtobj * @returns {!DtcalcDatetimeReturn} * * @overload * @param {!Date} dtobj * @returns {!DtcalcDateReturn} * * @overload * @param {!Time} dtobj * @returns {!DtcalcTimeReturn} * * @param {!TimeDelta | !Date | !Time | !DateTime} dtobj * @returns {!DtcalcTimedeltaReturn | !DtcalcDateReturn | !DtcalcTimeReturn | !DtcalcDatetimeReturn} */ add(dtobj: TimeDelta): DtcalcTimedeltaReturn; /** * Add. * * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcTimedeltaReturn} * * @overload * @param {!DateTime} dtobj * @returns {!DtcalcDatetimeReturn} * * @overload * @param {!Date} dtobj * @returns {!DtcalcDateReturn} * * @overload * @param {!Time} dtobj * @returns {!DtcalcTimeReturn} * * @param {!TimeDelta | !Date | !Time | !DateTime} dtobj * @returns {!DtcalcTimedeltaReturn | !DtcalcDateReturn | !DtcalcTimeReturn | !DtcalcDatetimeReturn} */ add(dtobj: DateTime): DtcalcDatetimeReturn; /** * Add. * * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcTimedeltaReturn} * * @overload * @param {!DateTime} dtobj * @returns {!DtcalcDatetimeReturn} * * @overload * @param {!Date} dtobj * @returns {!DtcalcDateReturn} * * @overload * @param {!Time} dtobj * @returns {!DtcalcTimeReturn} * * @param {!TimeDelta | !Date | !Time | !DateTime} dtobj * @returns {!DtcalcTimedeltaReturn | !DtcalcDateReturn | !DtcalcTimeReturn | !DtcalcDatetimeReturn} */ add(dtobj: Date): DtcalcDateReturn; /** * Add. * * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcTimedeltaReturn} * * @overload * @param {!DateTime} dtobj * @returns {!DtcalcDatetimeReturn} * * @overload * @param {!Date} dtobj * @returns {!DtcalcDateReturn} * * @overload * @param {!Time} dtobj * @returns {!DtcalcTimeReturn} * * @param {!TimeDelta | !Date | !Time | !DateTime} dtobj * @returns {!DtcalcTimedeltaReturn | !DtcalcDateReturn | !DtcalcTimeReturn | !DtcalcDatetimeReturn} */ add(dtobj: Time): DtcalcTimeReturn; /** * Subtract. * @param {!TimeDelta} dtobj * @returns {!DtcalcTimedeltaReturn} */ sub(dtobj: TimeDelta): DtcalcTimedeltaReturn; /** * Negate. * @returns {!DtcalcTimedeltaReturn} */ neg(): DtcalcTimedeltaReturn; } import { DateTime } from './datetime.js'; /** * @extends {DtcalcComparableReturn<DateTime>} */ declare class DtcalcDatetimeReturn extends DtcalcComparableReturn<DateTime> { /** * @param {!DateTime} value */ constructor(value: DateTime); /** * Add. * @param {!TimeDelta} dtobj * @returns {!DtcalcDatetimeReturn} */ add(dtobj: TimeDelta): DtcalcDatetimeReturn; /** * Subtract. * * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcDatetimeReturn} * * @overload * @param {!DateTime} dtobj * @returns {!DtcalcTimedeltaReturn} * * @param {!TimeDelta | !DateTime} dtobj * @returns {!DtcalcDatetimeReturn | !DtcalcTimedeltaReturn} */ sub(dtobj: TimeDelta): DtcalcDatetimeReturn; /** * Subtract. * * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcDatetimeReturn} * * @overload * @param {!DateTime} dtobj * @returns {!DtcalcTimedeltaReturn} * * @param {!TimeDelta | !DateTime} dtobj * @returns {!DtcalcDatetimeReturn | !DtcalcTimedeltaReturn} */ sub(dtobj: DateTime): DtcalcTimedeltaReturn; } import { Date } from './datetime.js'; /** * @extends {DtcalcComparableReturn<Date>} */ declare class DtcalcDateReturn extends DtcalcComparableReturn<Date> { /** * @param {!Date} value */ constructor(value: Date); /** * Add. * @param {!TimeDelta} dtobj * @returns {!DtcalcDateReturn} */ add(dtobj: TimeDelta): DtcalcDateReturn; /** * Subtract. * * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcDateReturn} * * @overload * @param {!Date} dtobj * @returns {!DtcalcTimedeltaReturn} * * @param {!TimeDelta | !Date} dtobj * @returns {!DtcalcDateReturn | !DtcalcTimedeltaReturn} */ sub(dtobj: TimeDelta): DtcalcDateReturn; /** * Subtract. * * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcDateReturn} * * @overload * @param {!Date} dtobj * @returns {!DtcalcTimedeltaReturn} * * @param {!TimeDelta | !Date} dtobj * @returns {!DtcalcDateReturn | !DtcalcTimedeltaReturn} */ sub(dtobj: Date): DtcalcTimedeltaReturn; } import { Time } from './datetime.js'; /** * @extends {DtcalcComparableReturn<Time>} */ declare class DtcalcTimeReturn extends DtcalcComparableReturn<Time> { /** * @param {!Time} value */ constructor(value: Time); /** * Add. * @param {!TimeDelta} dtobj * @returns {!DtcalcTimeReturn} */ add(dtobj: TimeDelta): DtcalcTimeReturn; /** * Subtract. * * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcTimeReturn} * * @overload * @param {!Time} dtobj * @returns {!DtcalcTimedeltaReturn} * * @param {!TimeDelta | !Time} dtobj * @returns {!DtcalcTimeReturn | !DtcalcTimedeltaReturn} */ sub(dtobj: TimeDelta): DtcalcTimeReturn; /** * Subtract. * * @overload * @param {!TimeDelta} dtobj * @returns {!DtcalcTimeReturn} * * @overload * @param {!Time} dtobj * @returns {!DtcalcTimedeltaReturn} * * @param {!TimeDelta | !Time} dtobj * @returns {!DtcalcTimeReturn | !DtcalcTimedeltaReturn} */ sub(dtobj: Time): DtcalcTimedeltaReturn; } /** * @template T */ declare class DtcalcReturn<T> { /** * @param {T} value */ constructor(value: T); _value: T; /** * @returns {T} */ get value(): T; } /** * @template {!Date | !Time | !DateTime | !TimeDelta} T * @extends DtcalcReturn<T> */ declare class DtcalcComparableReturn<T extends Date | Time | DateTime | TimeDelta> extends DtcalcReturn<T> { /** * @param {T} value */ constructor(value: T); /** * Equals. * @param {T} dtobj * @returns {!DtcalcReturn<boolean>} */ eq(dtobj: T): DtcalcReturn<boolean>; /** * Not equals. * @param {T} dtobj * @returns {!DtcalcReturn<boolean>} */ ne(dtobj: T): DtcalcReturn<boolean>; /** * Greater than. * @param {T} dtobj * @returns {!DtcalcReturn<boolean>} */ gt(dtobj: T): DtcalcReturn<boolean>; /** * Lesser than. * @param {T} dtobj * @returns {!DtcalcReturn<boolean>} */ lt(dtobj: T): DtcalcReturn<boolean>; /** * Greater or equals. * @param {T} dtobj * @returns {!DtcalcReturn<boolean>} */ ge(dtobj: T): DtcalcReturn<boolean>; /** * Lesser or equals. * @param {T} dtobj * @returns {!DtcalcReturn<boolean>} */ le(dtobj: T): DtcalcReturn<boolean>; } export {};