Skip to content

intervalAbutsDateTime

intervalAbutsDateTime(aStart: string, aEnd: string, bStart: string, bEnd: string): boolean
import { intervalAbutsDateTime } from "@northguild/gmt/plain/interval";

Return true when two datetime intervals are exactly adjacent — one’s end equals the other’s

  • start with zero gap and zero overlap.
  • Uses Temporal.PlainDateTime.compare for comparison.
  • Returns true when aEnd + 1 nanosecond === bStart or bEnd + 1 nanosecond === aStart.
  • Returns false when intervals overlap, are disjoint with a gap, or are invalid.
  • Returns false on invalid input (wrong type, malformed strings).
Parameter Type Description
aStart string ISO 8601 datetime string for the first interval start
aEnd string ISO 8601 datetime string for the first interval end
bStart string ISO 8601 datetime string for the second interval start
bEnd string ISO 8601 datetime string for the second interval end

true if intervals are exactly adjacent, or false on invalid input

intervalAbutsDateTime("2024-01-01T09:00:00", "2024-06-30T12:00:00", "2024-06-30T12:00:00.000000001", "2024-12-31T17:00:00") // true
intervalAbutsDateTime("2024-06-30T12:00:00", "2024-12-31T17:00:00", "2024-01-01T09:00:00", "2024-06-30T12:00:00.000000001") // true
intervalAbutsDateTime("2024-01-01T09:00:00", "2024-06-30T12:00:00", "2024-06-30T12:00:01", "2024-12-31T17:00:00") // false (gap)
intervalAbutsDateTime("2024-01-01T09:00:00", "2024-06-30T13:00:00", "2024-06-30T12:00:00", "2024-12-31T17:00:00") // false (overlap)
intervalAbutsDateTime("invalid", "2024-06-30T12:00:00", "2024-06-30T12:00:00", "2024-12-31T17:00:00") // false

plain/interval/intervalAbutsDateTime.ts