From 49d32b08541aac49ff7e2976449f36541e0bf346 Mon Sep 17 00:00:00 2001 From: Elias Jansson Date: Tue, 21 Oct 2025 21:09:44 +0200 Subject: [PATCH] Veckomeny fixes to Date --- Aberwyn/Controllers/BudgetController.cs | 6 ++ Aberwyn/Controllers/FoodMenuController.cs | 16 +++++- Aberwyn/Views/Budget/Elkostnad.cshtml | 70 +++++++++++++++++++++++ 3 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 Aberwyn/Views/Budget/Elkostnad.cshtml diff --git a/Aberwyn/Controllers/BudgetController.cs b/Aberwyn/Controllers/BudgetController.cs index 254a7cb..017da7a 100644 --- a/Aberwyn/Controllers/BudgetController.cs +++ b/Aberwyn/Controllers/BudgetController.cs @@ -27,6 +27,12 @@ namespace Aberwyn.Controllers return View(); } + [Route("budget/elkostnad")] + public IActionResult Elkostnad() + { + return View(); + } + // För fallback när ingen månad/år anges [Route("budget")] diff --git a/Aberwyn/Controllers/FoodMenuController.cs b/Aberwyn/Controllers/FoodMenuController.cs index 9572a3a..42a3f4e 100644 --- a/Aberwyn/Controllers/FoodMenuController.cs +++ b/Aberwyn/Controllers/FoodMenuController.cs @@ -358,7 +358,7 @@ namespace Aberwyn.Controllers } entry.Cook = cook; - + entry.Date = FirstDateOfISOWeek(year, week).AddDays(day); if (string.IsNullOrWhiteSpace(mealName)) { switch (mealType.ToLower()) @@ -564,7 +564,21 @@ namespace Aberwyn.Controllers + private static DateTime FirstDateOfISOWeek(int year, int weekOfYear) + { + DateTime jan4 = new DateTime(year, 1, 4); + int daysOffset = DayOfWeek.Thursday - jan4.DayOfWeek; + DateTime firstThursday = jan4.AddDays(daysOffset); + var cal = System.Globalization.CultureInfo.CurrentCulture.Calendar; + int firstWeek = cal.GetWeekOfYear(firstThursday, System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); + + if (firstWeek <= 1) + weekOfYear -= 1; + + DateTime result = firstThursday.AddDays(weekOfYear * 7); + return result.AddDays(-3); // tillbaka till måndag + } diff --git a/Aberwyn/Views/Budget/Elkostnad.cshtml b/Aberwyn/Views/Budget/Elkostnad.cshtml new file mode 100644 index 0000000..1657fc3 --- /dev/null +++ b/Aberwyn/Views/Budget/Elkostnad.cshtml @@ -0,0 +1,70 @@ +@{ + ViewData["Title"] = "Elkostnad"; +} + +

Räkna ut elkostnad

+ +
+
+ + +
+ +
+ + +
+ + +
+ + + +@section Scripts { + +}