| | import { defaultDateLib } from "../classes/index.js"; |
| | import type { DateRange } from "../types/index.js"; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | export function rangeIncludesDate( |
| | range: DateRange, |
| | date: Date, |
| | excludeEnds = false, |
| | dateLib = defaultDateLib, |
| | ): boolean { |
| | let { from, to } = range; |
| | const { differenceInCalendarDays, isSameDay } = dateLib; |
| | if (from && to) { |
| | const isRangeInverted = differenceInCalendarDays(to, from) < 0; |
| | if (isRangeInverted) { |
| | [from, to] = [to, from]; |
| | } |
| | const isInRange = |
| | differenceInCalendarDays(date, from) >= (excludeEnds ? 1 : 0) && |
| | differenceInCalendarDays(to, date) >= (excludeEnds ? 1 : 0); |
| | return isInRange; |
| | } |
| | if (!excludeEnds && to) { |
| | return isSameDay(to, date); |
| | } |
| | if (!excludeEnds && from) { |
| | return isSameDay(from, date); |
| | } |
| | return false; |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | export const isDateInRange = (range: DateRange, date: Date) => |
| | rangeIncludesDate(range, date, false, defaultDateLib); |
| |
|