export const format = (d: Date) => `${d.getDate()} ${d.toLocaleString("default", { month: "short" })}`; export const startOfDay = (d: Date) => { const x = new Date(d); x.setHours(0, 0, 0, 0); return x; }; export const endOfDay = (d: Date) => { const x = new Date(d); x.setHours(23, 59, 59, 999); return x; }; export const getStartOfWeek = (d: Date) => { const date = new Date(d); const day = date.getDay() || 7; if (day !== 1) date.setDate(date.getDate() - (day - 1)); return startOfDay(date); }; export const shiftDate = (d: Date, days: number) => new Date(d.getTime() + days * 86400000); export const getWeekIndex = (date: Date) => { const firstDay = new Date(date.getFullYear(), date.getMonth(), 1); const firstWeekStart = getStartOfWeek(firstDay); return Math.floor( (startOfDay(date).getTime() - firstWeekStart.getTime()) / (7 * 86400000) ); };