/** * Date and time utilities for working with market data */ export const dateUtils = { /** * Check if a date is a trading day (Monday-Friday, non-holiday) * This is a simplified implementation - a real version would check market holidays */ isTradingDay(date: Date): boolean { const day = date.getDay(); return day > 0 && day < 6; // Mon-Fri }, /** * Get the next trading day from a given date */ getNextTradingDay(date: Date): Date { const nextDay = new Date(date); nextDay.setDate(nextDay.getDate() + 1); while (!this.isTradingDay(nextDay)) { nextDay.setDate(nextDay.getDate() + 1); } return nextDay; }, /** * Get the previous trading day from a given date */ getPreviousTradingDay(date: Date): Date { const prevDay = new Date(date); prevDay.setDate(prevDay.getDate() - 1); while (!this.isTradingDay(prevDay)) { prevDay.setDate(prevDay.getDate() - 1); } return prevDay; }, /** * Format a date as YYYY-MM-DD */ formatDate(date: Date): string { return date.toISOString().split('T')[0]; }, /** * Parse a date string in YYYY-MM-DD format */ parseDate(dateStr: string): Date { return new Date(dateStr); }, };