@naturalcycles/js-lib
Version:
Standard library for universal (browser + Node.js) javascript
41 lines (40 loc) • 1.48 kB
TypeScript
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;
}