Skip to content

intervalContainsDate

Playground

call
result 
intervalContainsDate(intervalStart: string, intervalEnd: string, pointOrStart: string, pointEnd?: string): boolean
import { intervalContainsDate } from "@northguild/gmt/plain/interval";

Return true when pointOrStart falls within the interval [intervalStart, intervalEnd]

  • (3-arg), or when the inner interval [innerStart, innerEnd] is fully contained within the outer interval [intervalStart, intervalEnd] (4-arg).
  • Uses Temporal.PlainDate.compare for comparison.
  • Always-inclusive boundaries: start <= point <= end.
  • Returns false if intervalStart > intervalEnd (invalid outer interval).
  • Returns false if innerStart > innerEnd in 4-arg mode (invalid inner interval).
  • Returns false on invalid input (wrong type, malformed strings).
  • Accepts GMT calendar-annotated PlainDate strings — E5 (issue #78). Ordering is calendar-independent, so arguments may carry different or no calendar tags (D4).
Parameter Type Description
intervalStart string ISO 8601 date string for the outer interval start, optionally calendar-annotated
intervalEnd string ISO 8601 date string for the outer interval end, optionally calendar-annotated
pointOrStart string ISO 8601 date string for the point (3-arg) or inner start (4-arg), optionally calendar-annotated
pointEnd string optional ISO 8601 date string for the inner interval end (4-arg mode), optionally calendar-annotated

true if the point or inner interval is contained, or false on invalid input

intervalContainsDate("2024-01-01", "2024-12-31", "2024-06-15") // true
intervalContainsDate("2024-01-01", "2024-12-31", "2024-06-15", "2024-07-15") // true
intervalContainsDate("2024-12-31", "2024-01-01", "2024-06-15") // false
intervalContainsDate("2024-01-01", "2024-12-31", "2024-06-15", "2024-06-10") // false
intervalContainsDate("invalid", "2024-12-31", "2024-06-15") // false

plain/interval/intervalContainsDate.ts