UNPKG

timeperiodjs

Version:
25 lines (24 loc) 993 B
import Duration from "../../duration/Duration"; import Period from "../Period"; import PeriodTimeChanger from "../PeriodTimeChanger"; import { IPeriodOverlappingConf } from "./confs/IPeriodOverlappingConf.interface"; import IPeriodComparison from "./IPeriodComparison"; export interface PeriodDTO { start: Date; end: Date; duration: Duration; change: PeriodTimeChanger; } export default abstract class IPeriod { protected _start: Date; protected _end: Date; protected readonly _timeChanger: PeriodTimeChanger; constructor(start: Date, end: Date); getDates(): Date[]; getOverlappingDates(dates: Date[]): Date[]; isDateOverlapping(date: Date): boolean; isPeriodOverlapping(period: Period, conf?: IPeriodOverlappingConf): boolean; getOverlappingPeriods(periods: Period[], conf?: IPeriodOverlappingConf): Period[]; comparePeriod(period: Period): IPeriodComparison[]; cutBoundaries(periods: Period[]): Period[]; }