namespace LehrerApp.Core.Services; public class SchoolYearService { /// /// Gibt das aktuelle Schuljahr zurück, z.B. "2024/25". /// Schuljahr beginnt am 1. August. /// public string CurrentSchoolYear() { var now = DateTime.Today; var startYear = now.Month >= 8 ? now.Year : now.Year - 1; return FormatSchoolYear(startYear); } public string FormatSchoolYear(int startYear) => $"{startYear}/{(startYear + 1) % 100:D2}"; /// /// Gibt den Beginn des Schuljahres zurück (1. August). /// public DateOnly SchoolYearStart(string schoolYear) { var year = int.Parse(schoolYear.Split('/')[0]); return new DateOnly(year, 8, 1); } /// /// Gibt das Ende des Schuljahres zurück (31. Juli des Folgejahres). /// public DateOnly SchoolYearEnd(string schoolYear) { var year = int.Parse(schoolYear.Split('/')[0]) + 1; return new DateOnly(year, 7, 31); } /// /// Gibt die letzten N Schuljahre zurück (für Dropdowns). /// public List RecentSchoolYears(int count = 5) { var now = DateTime.Today; var currentStart = now.Month >= 8 ? now.Year : now.Year - 1; return Enumerable.Range(0, count) .Select(i => FormatSchoolYear(currentStart - i)) .ToList(); } }