UNPKG

@naturalcycles/js-lib

Version:

Standard library for universal (browser + Node.js) javascript

41 lines (40 loc) 1.48 kB
import type { LocalDate, LocalDateInput, LocalDateUnit } from './localDate.js'; export type DateIntervalConfig = DateInterval | DateIntervalString; export type DateIntervalString = string; /** * Class that supports ISO8601 "Time interval" standard that looks like `2022-02-24/2022-03-30`. * * @experimental */ export declare class DateInterval { start: LocalDate; end: LocalDate; private constructor(); static of(start: LocalDateInput, end: LocalDateInput): DateInterval; /** * Parses string like `2022-02-24/2023-03-30` into a DateInterval. */ static parse(d: DateIntervalConfig): DateInterval; isSame(d: DateIntervalConfig): boolean; isBefore(d: DateIntervalConfig, inclusive?: boolean): boolean; isSameOrBefore(d: DateIntervalConfig): boolean; isAfter(d: DateIntervalConfig, inclusive?: boolean): boolean; isSameOrAfter(d: DateIntervalConfig): boolean; /** * Ranges of DateInterval (start, end) are INCLUSIVE. */ includes(d: LocalDateInput): boolean; intersects(int: DateIntervalConfig): boolean; /** * DateIntervals compare by start date. * If it's the same - then by end date. */ cmp(d: DateIntervalConfig): -1 | 0 | 1; getDays(): LocalDate[]; /** * Returns an array of LocalDates that are included in the interval. */ range(step?: number, stepUnit?: LocalDateUnit): LocalDate[]; toString(): DateIntervalString; toJSON(): DateIntervalString; }