Market hours, trading days, settlement dates, and options expiration

Import

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

Examples

Market Hours

Check market open/close times and trading status

import { isMarketOpen, isTradingDay, getMarketOpen, getMarketClose, getNextMarketOpen } from 'ts-time-utils/finance';

// Check if market is currently open
console.log('NYSE open now?', isMarketOpen(new Date(), 'NYSE'));

// Check if today is a trading day
console.log('Is trading day?', isTradingDay(new Date()));

// Get market hours for a specific date
const date = new Date('2025-01-15');
console.log('Market opens:', getMarketOpen(date));
console.log('Market closes:', getMarketClose(date));

// Find next market open (skips weekends & holidays)
const nextOpen = getNextMarketOpen(new Date());
console.log('Next market open:', nextOpen);

Trading Days & Settlement

Calculate trading days and settlement dates

import { addTradingDays, countTradingDays, eachTradingDay, getSettlementDate, isMarketHoliday } from 'ts-time-utils/finance';

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

// Add trading days (skips weekends & holidays)
const fiveDaysLater = addTradingDays(start, 5);
console.log('5 trading days later:', fiveDaysLater);

// Count trading days in range
const end = new Date('2025-01-31');
console.log('Trading days:', countTradingDays(start, end));

// Get all trading days in range
const tradingDays = eachTradingDay(start, end);
console.log('First 5 trading days:', tradingDays.slice(0, 5));

// T+2 settlement date
const settlement = getSettlementDate(start, 2);
console.log('T+2 settlement:', settlement);

// Check market holidays
console.log('Is Christmas a holiday?', isMarketHoliday(new Date('2025-12-25')));

Options Expiration

Calculate options expiration dates

import { getOptionsExpiration } from 'ts-time-utils/finance';

// Monthly options (3rd Friday)
const monthlyExp = getOptionsExpiration(2025, 1, 'monthly');
console.log('January monthly expiration:', monthlyExp);

// Quarterly options (Mar, Jun, Sep, Dec)
const quarterlyExp = getOptionsExpiration(2025, 3, 'quarterly');
console.log('Q1 quarterly expiration:', quarterlyExp);

// Get expiration for each month
for (let month = 1; month <= 12; month++) {
  const exp = getOptionsExpiration(2025, month, 'monthly');
  console.log(`${month}/2025 expiration: ${exp.toDateString()}`);
}