namespace Utility
{
public enum Weekday
{
Monday = 0,
Tuesday = 1,
Wednesday = 2,
Thursday = 3,
Friday = 4,
Saturday = 5,
Sunday = 6
}
public static class WeekdayExtension
{
///
/// Gibt den Wochentag zurück, der auf den gegebenen Wochentag folgt.
///
public static Weekday GetNext(this Weekday current) => GetFutureDay(current, 1);
///
/// Gibt den Wochentag zurück, der in der gegebenen Anzahl an Tagen auf den gegebenen Wochentag folgt.
///
/// Der aktuelle Wochentag.
/// Die Anzahl an Tagen, die vergehen sollen.
public static Weekday GetFutureDay(this Weekday current, int days) =>
(Weekday)(((int)current + days) % 7);
///
/// Gibt den deutschen Namen des Wochentags zurück.
///
public static string GetName(this Weekday weekday) => weekday switch
{
Weekday.Monday => "Montag",
Weekday.Tuesday => "Dienstag",
Weekday.Wednesday => "Mittwoch",
Weekday.Thursday => "Donnerstag",
Weekday.Friday => "Freitag",
Weekday.Saturday => "Samstag",
Weekday.Sunday => "Sonntag",
_ => "Unbekannt"
};
}
}