intervalContainsDate
Signature
Section titled “Signature”intervalContainsDate(intervalStart: string, intervalEnd: string, pointOrStart: string, pointEnd?: string): booleanReturn true when pointOrStart lies in the half-open interval [intervalStart, intervalEnd) (3-arg), or when the inner interval [innerStart, innerEnd) lies within it (4-arg).
- Half-open: an interval holds every day
twithstart <= t < end, sointervalEnditself is outside (the rule CORE-6’sintervalContainsuses). An empty interval (start === end) contains no point. - 4-arg: the inner interval must start at or after
intervalStart, end at or beforeintervalEnd, and overlap the outer interval. An empty inner interval therefore counts only strictly inside, never at an edge (CORE-6’sclampIntervalclamps it away there). - Uses
Temporal.PlainDate.comparefor comparison. - Returns
falseifintervalStart > intervalEnd(invalid outer interval). - Returns
falseifinnerStart > innerEndin 4-arg mode (invalid inner interval). - Returns
falseon invalid input (wrong type, malformed strings). - Accepts RFC 9557 calendar-annotated PlainDate strings — E5 (issue #78). Ordering is calendar-independent, so arguments may carry different or no calendar tags (D4).
- Compatibility: since 1.16.0 calendar strings are RFC 9557 (ISO digits,
[u-ca=<id>], canonical calendar ids); seeisValidCalendarDate.
Parameters
Section titled “Parameters”| 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 (excluded), 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 |
Returns
Section titled “Returns”true if the point or inner interval is contained, or false on invalid input
Examples
Section titled “Examples”import { intervalContainsDate } from "@northguild/gmt/plain/interval";
intervalContainsDate("2024-01-01", "2024-12-31", "2024-06-15") // true