方法一:Switch 表達式 (C# 8.0+)
public static string GetChineseWeekName() {
return DateTime.Now.DayOfWeek switch {
DayOfWeek.Monday => "星期一",
DayOfWeek.Tuesday => "星期二",
DayOfWeek.Wednesday => "星期三",
DayOfWeek.Thursday => "星期四",
DayOfWeek.Friday => "星期五",
DayOfWeek.Saturday => "星期六",
DayOfWeek.Sunday => "星期日",
_ => throw new ArgumentOutOfRangeException()
};
}
方法二:陣列查表 (效能最佳、相容所有版本)
private static readonly string[] ChineseWeekNames =
{ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
public static string GetChineseWeekName() {
return ChineseWeekNames[(int)DateTime.Now.DayOfWeek];
}
方法三:傳統 Switch (舊版 C# 相容)
public static string GetChineseWeekName() {
switch (DateTime.Now.DayOfWeek) {
case DayOfWeek.Monday: return "星期一";
case DayOfWeek.Tuesday: return "星期二";
case DayOfWeek.Wednesday: return "星期三";
case DayOfWeek.Thursday: return "星期四";
case DayOfWeek.Friday: return "星期五";
case DayOfWeek.Saturday: return "星期六";
case DayOfWeek.Sunday: return "星期日";
default: throw new InvalidOperationException();
}
}
使用範例
Console.WriteLine($"今天是 {GetChineseWeekName()}"); // 輸出:今天是 星期三
補充:取得指定日期的星期
public static string GetChineseWeekName(DateTime date) {
return ChineseWeekNames[(int)date.DayOfWeek];
}