diff --git a/src/digital-components/date-picker/date-picker.vue b/src/digital-components/date-picker/date-picker.vue index a4eb232e0..b9afb7daf 100644 --- a/src/digital-components/date-picker/date-picker.vue +++ b/src/digital-components/date-picker/date-picker.vue @@ -324,9 +324,9 @@ export default { let preSelectedDateMonthEnd = this.getMonthEnd( preSelectedDate.replace("-mobile", "") ); - let weekIncludesPreSelectedMonthEnd = false; + let monthEndsByThisWeek = false; let i = 0; - while (!weekIncludesPreSelectedMonthEnd) { + while (!monthEndsByThisWeek && i < 52) { if (i > 0) { weekStartDate = this.getNextWeekSunday(weekEndDate); weekEndDate = this.getWeekEndDate(weekStartDate); @@ -338,7 +338,12 @@ export default { preSelectedDateMonthEnd === weekEndDate ) { weekEndDate = preSelectedDateMonthEnd; - weekIncludesPreSelectedMonthEnd = true; + monthEndsByThisWeek = true; + } else if (preSelectedDateMonthEnd < weekEndDate) { + // Additional case: if month ends before this week (but not necessarily during it), + // still cut the loop here, but don't truncate the week. + + monthEndsByThisWeek = true; } } weeks.push({