GameVsJam/3d Prototyp/Assets/Scripts/Utility/Weekday.cs

44 lines
1.4 KiB
C#

namespace Utility
{
public enum Weekday
{
Monday = 0,
Tuesday = 1,
Wednesday = 2,
Thursday = 3,
Friday = 4,
Saturday = 5,
Sunday = 6
}
public static class WeekdayExtension
{
/// <summary>
/// Gibt den Wochentag zurück, der auf den gegebenen Wochentag folgt.
/// </summary>
public static Weekday GetNext(this Weekday current) => GetFutureDay(current, 1);
/// <summary>
/// Gibt den Wochentag zurück, der in der gegebenen Anzahl an Tagen auf den gegebenen Wochentag folgt.
/// </summary>
/// <param name="current">Der aktuelle Wochentag.</param>
/// <param name="days">Die Anzahl an Tagen, die vergehen sollen.</param>
public static Weekday GetFutureDay(this Weekday current, int days) =>
(Weekday)(((int)current + days) % 7);
/// <summary>
/// Gibt den deutschen Namen des Wochentags zurück.
/// </summary>
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"
};
}
}