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();
}
}