timeperiodjs
Version:
Time Period Library
25 lines (24 loc) • 993 B
TypeScript
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[];
}