diff --git a/src/lib/components/calendar.svelte b/src/lib/components/calendar.svelte index 626d7de..e08e2fd 100644 --- a/src/lib/components/calendar.svelte +++ b/src/lib/components/calendar.svelte @@ -27,6 +27,7 @@ date: day.getDate(), month: day.getMonth(), year: day.getFullYear(), + dayName: headers[i], isCurrentMonth: day.getMonth() === today.getMonth(), isToday: day.toDateString() === today.toDateString() }); @@ -49,10 +50,12 @@ // Previous month days const prevMonthLastDay = new Date(year, month, 0).getDate(); for (let i = startDay - 1; i >= 0; i--) { + const dayIndex = days.length % 7; days.push({ date: prevMonthLastDay - i, month: month - 1, year: month === 0 ? year - 1 : year, + dayName: headers[dayIndex], isCurrentMonth: false, isToday: false }); @@ -64,10 +67,12 @@ const isToday = today.getDate() === i && today.getMonth() === month && today.getFullYear() === year; + const dayIndex = days.length % 7; days.push({ date: i, month: month, year: year, + dayName: headers[dayIndex], isCurrentMonth: true, isToday }); @@ -76,10 +81,12 @@ // Next month days to fill the grid const remaining = 42 - days.length; // 6 rows * 7 days for (let i = 1; i <= remaining; i++) { + const dayIndex = days.length % 7; days.push({ date: i, month: month + 1, year: month === 11 ? year + 1 : year, + dayName: headers[dayIndex], isCurrentMonth: false, isToday: false }); @@ -147,12 +154,14 @@