@philiprehberger/date-range-ts
v0.1.3
Published
Date range operations — overlap, gap, iterate, merge
Readme
@philiprehberger/ts-date-range
Date range operations — overlap, gap, iterate, merge.
Installation
npm install @philiprehberger/ts-date-rangeUsage
import { dateRange, mergeRanges } from '@philiprehberger/ts-date-range';
const booking = dateRange('2026-03-15', '2026-03-20');
const request = dateRange('2026-03-18', '2026-03-25');
booking.overlaps(request); // true
booking.intersection(request); // March 18-20
booking.durationIn('days'); // 5
for (const day of booking.iterate('day')) { /* ... */ }
mergeRanges([range1, range2, range3]); // merged, non-overlappingAPI
| Method | Description |
|--------|-------------|
| dateRange(start, end) | Create a date range |
| .overlaps(other) | Check if ranges overlap |
| .contains(date) / .containsRange(other) | Containment checks |
| .intersection(other) | Overlapping portion |
| .union(other) | Merge two ranges |
| .gap(other) | Gap between ranges |
| .iterate(step) | Generator yielding dates |
| .splitBy(step) | Split into sub-ranges |
| .durationIn(unit) | Duration as number |
| mergeRanges(ranges[]) | Merge all overlapping |
Development
npm install
npm run build
npm testLicense
MIT
