vremel
Version:
JavaScript date utility library for Temporal API
27 lines (25 loc) • 801 B
text/typescript
import { assertSameType, assertValidInterval } from "../assert.js";
import type { Interval, Temporal } from "../types.js";
import { compare } from "./_compare.js";
/**
* Checks whether the given datetime is within the interval.
* @param dateTime temporal object
* @param interval interval
* @returns Whether the given datetime is within the interval
*/
export function isWithinInterval<
DateTime extends
| Temporal.Instant
| Temporal.ZonedDateTime
| Temporal.PlainDate
| Temporal.PlainTime
| Temporal.PlainDateTime
| Temporal.PlainYearMonth,
>(dateTime: DateTime, interval: Interval<DateTime>): boolean {
assertValidInterval(interval);
assertSameType(dateTime, interval.start);
return (
compare(dateTime, interval.start) !== -1 &&
compare(dateTime, interval.end) !== 1
);
}