获取 ASP.NET 核心中当前工作日的编号
Get the number of the current weekday in ASP.NET Core
我需要获取当前周的当前星期几。
如果我使用 DateTime.Now.DayOfWeek
,我会得到 Monday
,但是如果我星期一得到 1
,[=15] 得到 7
,那么使用起来会容易得多=]等。预先感谢!
你可以使用这个:
day1 = (int)DateTime.Now.DayOfWeek;
您可以创建一个扩展方法来隐藏实现细节。
使用扩展方法并将 T
限制为 IConvertible
就可以了,但是 as of C# 7.3 Enum
is an available constraint type:
public static class EnumExtensions
{
public static int ToInt<T>(this T source) where T : Enum
{
return (int) (IConvertible) source;
}
}
这样你就可以写:
DateTime.Now.DayOfWeek.ToInt();
示例:
Console.WriteLine(DayOfWeek.Monday.ToInt()); // outputs 1
注意:此解决方案假定 int
用作基础 Enum
类型。
DateTime.Now.DayOfWeek
是一个枚举,它是 (int) 类型,所以最简单的方法是@faheem999 的回答。
但是,如果你正在处理未知类型的枚举,例如(byte , sbyte , short , ushort , int , uint , long
或 ulong
),那么你要么需要知道枚举类型,要么使用另一种方法:
DayOfWeek dayOfWeek = DateTime.Now.DayOfWeek;
object val = Convert.ChangeType(dayOfWeek, dayOfWeek.GetTypeCode());
更多信息,请看这个问题Get int value from enum in C#
我需要获取当前周的当前星期几。
如果我使用 DateTime.Now.DayOfWeek
,我会得到 Monday
,但是如果我星期一得到 1
,[=15] 得到 7
,那么使用起来会容易得多=]等。预先感谢!
你可以使用这个:
day1 = (int)DateTime.Now.DayOfWeek;
您可以创建一个扩展方法来隐藏实现细节。
使用扩展方法并将 T
限制为 IConvertible
就可以了,但是 as of C# 7.3 Enum
is an available constraint type:
public static class EnumExtensions
{
public static int ToInt<T>(this T source) where T : Enum
{
return (int) (IConvertible) source;
}
}
这样你就可以写:
DateTime.Now.DayOfWeek.ToInt();
示例:
Console.WriteLine(DayOfWeek.Monday.ToInt()); // outputs 1
注意:此解决方案假定 int
用作基础 Enum
类型。
DateTime.Now.DayOfWeek
是一个枚举,它是 (int) 类型,所以最简单的方法是@faheem999 的回答。
但是,如果你正在处理未知类型的枚举,例如(byte , sbyte , short , ushort , int , uint , long
或 ulong
),那么你要么需要知道枚举类型,要么使用另一种方法:
DayOfWeek dayOfWeek = DateTime.Now.DayOfWeek;
object val = Convert.ChangeType(dayOfWeek, dayOfWeek.GetTypeCode());
更多信息,请看这个问题Get int value from enum in C#