@silane/datetime
Version:
Date and time library similar to Python's "datetime" package.
428 lines (427 loc) • 10 kB
TypeScript
/**
* @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 {};