diff --git a/Aberwyn/Controllers/FoodMenuController.cs b/Aberwyn/Controllers/FoodMenuController.cs index 42a3f4e..b31e293 100644 --- a/Aberwyn/Controllers/FoodMenuController.cs +++ b/Aberwyn/Controllers/FoodMenuController.cs @@ -220,8 +220,28 @@ namespace Aberwyn.Controllers var menuService = _menuService; var today = DateTime.Today; - int resolvedWeek = week ?? ISOWeek.GetWeekOfYear(today); - int resolvedYear = year ?? today.Year; + + // Starta alltid från ett GILTIGT datum + DateTime referenceDate; + + if (week.HasValue && year.HasValue) + { + // Om week < 1 eller > 53 – tolka det som navigering + // från närliggande vecka i stället för att krascha + int safeWeek = Math.Clamp(week.Value, 1, 53); + referenceDate = ISOWeek.ToDateTime(year.Value, safeWeek, DayOfWeek.Monday); + + // Justera datumet med differensen (ex: week=0 → -1 vecka) + referenceDate = referenceDate.AddDays((week.Value - safeWeek) * 7); + } + else + { + referenceDate = today; + } + + // Normalisera alltid via datum + int resolvedWeek = ISOWeek.GetWeekOfYear(referenceDate); + int resolvedYear = ISOWeek.GetYear(referenceDate); var menus = menuService.GetWeeklyMenu(resolvedWeek, resolvedYear);