import { getISOWeek, getISODay, subYears, setISOWeek, setISODay, isValid } from 'date-fns'; export const getWeekNumber = (dateString: string): number => { const date = new Date(dateString); if (!isValid(date)) { throw new Error('Invalid date string provided.'); } return getISOWeek(date); }; export const getSameWeekDayLastYear = (dateString: string): string => { const baseDate = new Date(dateString); if (!isValid(baseDate)) { throw new Error('Invalid date string provided.'); } const originalWeek = getISOWeek(baseDate); const originalDayOfWeek = getISODay(baseDate); const lastYearDate = subYears(baseDate, 1); const dateWithWeekSet = setISOWeek(lastYearDate, originalWeek); const finalDate = setISODay(dateWithWeekSet, originalDayOfWeek); return finalDate.toISOString().split('T')[0]; // Return as YYYY-MM-DD };