123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import type { ContextOptions, Interval } from "./types.js";
- /**
- * The {@link areIntervalsOverlapping} function options.
- */
- export interface AreIntervalsOverlappingOptions extends ContextOptions<Date> {
- /** Whether the comparison is inclusive or not */
- inclusive?: boolean;
- }
- /**
- * @name areIntervalsOverlapping
- * @category Interval Helpers
- * @summary Is the given time interval overlapping with another time interval?
- *
- * @description
- * Is the given time interval overlapping with another time interval? Adjacent intervals do not count as overlapping unless `inclusive` is set to `true`.
- *
- * @param intervalLeft - The first interval to compare.
- * @param intervalRight - The second interval to compare.
- * @param options - The object with options
- *
- * @returns Whether the time intervals are overlapping
- *
- * @example
- * // For overlapping time intervals:
- * areIntervalsOverlapping(
- * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
- * { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }
- * )
- * //=> true
- *
- * @example
- * // For non-overlapping time intervals:
- * areIntervalsOverlapping(
- * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
- * { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }
- * )
- * //=> false
- *
- * @example
- * // For adjacent time intervals:
- * areIntervalsOverlapping(
- * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
- * { start: new Date(2014, 0, 20), end: new Date(2014, 0, 30) }
- * )
- * //=> false
- *
- * @example
- * // Using the inclusive option:
- * areIntervalsOverlapping(
- * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
- * { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) },
- * { inclusive: true }
- * )
- * //=> true
- */
- export declare function areIntervalsOverlapping(
- intervalLeft: Interval,
- intervalRight: Interval,
- options?: AreIntervalsOverlappingOptions,
- ): boolean;
|