import { BadRequestException } from "@nestjs/common"; export const hhmmFromLocal = (d: Date) => `${String(d.getHours()).padStart(2,'0')}:${String(d.getMinutes()).padStart(2,'0')}`; export const toDateOnly = (s: string): Date => { if (/^\d{4}-\d{2}-\d{2}$/.test(s)) { const y = Number(s.slice(0,4)); const m = Number(s.slice(5,7)) - 1; const d = Number(s.slice(8,10)); return new Date(y, m, d, 0, 0, 0, 0); } const dt = new Date(s); if (Number.isNaN(dt.getTime())) throw new BadRequestException(`Invalid date: ${s}`); return new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), 0,0,0,0); }; // export const toStringFromDate = (d: Date) => // `${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,'0')}-${String(d.getDate()).padStart(2,'0')}`; export const toISOtoDateOnly = (iso: string): Date => { const date = new Date(iso); if (Number.isNaN(date.getTime())) { throw new BadRequestException(`Invalid date: ${iso}`); } date.setHours(0, 0, 0, 0); return date; }; export const toISODateKey = (date: Date): string => date.toISOString().slice(0, 10); export const normalizeDates = (dates: string[]): string[] => Array.from(new Set(dates.map((iso) => toISODateKey(toISOtoDateOnly(iso)))));