Iterate through date sequences and count dates

Import

import { ... } from 'ts-time-utils/iterate';

Examples

Generate Date Arrays

Create arrays of dates in ranges

import { eachDay, eachWeekday, eachWeek, eachMonth } from 'ts-time-utils/iterate';

const start = new Date('2025-01-01');
const end = new Date('2025-01-15');

// Each day
const days = eachDay(start, end);
console.log(`${days.length} days`); // 15

// Weekdays only
const weekdays = eachWeekday(start, end);
console.log(`${weekdays.length} weekdays`); // 11

// Each week
const weeks = eachWeek(start, new Date('2025-01-31'));
console.log(`${weeks.length} weeks`);

// Each month in a year
const months = eachMonth(
  new Date('2025-01-01'),
  new Date('2025-12-31')
);
console.log(`${months.length} months`); // 12

Count Dates

Count days, weekdays, and weekends in ranges

import { countDays, countWeekdays, countWeekendDays, filterDays } from 'ts-time-utils/iterate';

const start = new Date('2025-01-01');
const end = new Date('2025-01-31');

console.log(`Total days: ${countDays(start, end)}`);
console.log(`Weekdays: ${countWeekdays(start, end)}`);
console.log(`Weekend days: ${countWeekendDays(start, end)}`);

// Filter with custom condition
const fridays = filterDays(start, end, date => date.getDay() === 5);
console.log(`Fridays in January: ${fridays.length}`);