获取 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 , longulong),那么你要么需要知道枚举类型,要么使用另一种方法:

DayOfWeek dayOfWeek = DateTime.Now.DayOfWeek;
object val = Convert.ChangeType(dayOfWeek, dayOfWeek.GetTypeCode());

更多信息,请看这个问题Get int value from enum in C#