From 6b2af762f9dce335db64751373b5455848e234be Mon Sep 17 00:00:00 2001 From: Astrian Zheng Date: Wed, 19 Feb 2025 16:41:03 +1100 Subject: [PATCH] refactor: adjust calendar start date calculation to handle week alignment correctly --- src/utils/getCalendarDates.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/utils/getCalendarDates.ts b/src/utils/getCalendarDates.ts index dfa23b8..d789d14 100644 --- a/src/utils/getCalendarDates.ts +++ b/src/utils/getCalendarDates.ts @@ -2,8 +2,11 @@ export default (currentDate: number, currentYear: number): Date[] => { const baselineDate = new Date(currentYear, currentDate) const calendarStart = new Date(baselineDate.getFullYear(), baselineDate.getMonth(), 1) - if (calendarStart.getDay() !== 1) - calendarStart.setDate(calendarStart.getDate() - calendarStart.getDay() + 1) + + const dayOfWeek = calendarStart.getDay() === 0 ? 7 : calendarStart.getDay() + + if (dayOfWeek !== 1) + calendarStart.setDate(calendarStart.getDate() - dayOfWeek + 1) const calendarEnd = new Date(baselineDate.getFullYear(), baselineDate.getMonth() + 1, 0) if (calendarEnd.getDay() !== 0)