Date arithmetic, differences, and business day calculations

Import

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

Examples

Date Differences

Calculate the difference between dates in any unit

import { differenceInUnits, addTime, subtractTime } from 'ts-time-utils/calculate';

const date1 = new Date('2025-01-01');
const date2 = new Date('2025-09-14');

// Get difference in various units
console.log(differenceInUnits(date1, date2, 'days'));
// 256

console.log(differenceInUnits(date1, date2, 'months'));
// 8

console.log(differenceInUnits(date1, date2, 'weeks'));
// 36

// Add/subtract time
console.log(addTime(new Date(), 5, 'hours'));
console.log(subtractTime(new Date(), 3, 'days'));

Start/End of Period

Get the start or end of time periods

import { startOf, endOf, businessDaysBetween } from 'ts-time-utils/calculate';

const date = new Date('2025-09-14T14:30:45');

// Start of periods
console.log(startOf(date, 'day'));
// 2025-09-14T00:00:00

console.log(startOf(date, 'week'));
// Start of week

console.log(startOf(date, 'month'));
// 2025-09-01T00:00:00

// End of periods
console.log(endOf(date, 'day'));
// 2025-09-14T23:59:59.999

console.log(endOf(date, 'month'));
// 2025-09-30T23:59:59.999

// Business days
const start = new Date('2025-09-01');
const end = new Date('2025-09-30');
console.log(businessDaysBetween(start, end));
// Number of weekdays in September