DateTime.DayOfWeek从VB.NET转换为C#

本文关键字:转换 NET VB DayOfWeek DateTime | 更新日期: 2023-09-27 17:58:39

我在这里有一个简单的vb.net代码片段:

While pStartDay.DayOfWeek <> 1
    pStartDay = pStartDay.AddDays(-1)
End While
While pEndDay.DayOfWeek <> 0
    pEndDay = pEndDay.AddDays(1)
End While

我想把它翻译成C#。

在vb.net中,我可以将DayOfWeek与整数进行比较。在c#中,这似乎是不可能的。

我只能将它与enum本身进行比较。

例如:

        while (endDay.DayOfWeek != DayOfWeek.Sunday)
        {
        }

现在我不确定哪个DayOfWeek是0,哪个是1。0可能是星期一或星期天。

1可能是星期一、星期二或其他什么时间。。

有人能帮我告诉我如何找出DayOfWeek的哪个枚举位置是0,哪个是1吗?

DateTime.DayOfWeek从VB.NET转换为C#

回答您的问题:

现在我不确定哪个DayOfWeek是0,哪个是1。。。

来自MSDN文档

此枚举中的常量值的范围从DayOfWeek.SundayDayOfWeek.Saturday。如果强制转换为整数,其值的范围从零(表示DayOfWeek.Sunday)到六(表示DayOfWeek.Saturday)。

这就是使用枚举的意义所在。你应该坚持你显示的代码:

while (endDay.DayOfWeek != DayOfWeek.Sunday)

您可以将枚举强制转换为整数来实现这一点。

 while ((int)pStartDay.DayOfWeek != 1)
 Console.WriteLine("Day 0 is: " + (DayOfWeek)0);

试试这个:

while (pStartDay.DayOfWeek != 1) {
    pStartDay = pStartDay.AddDays(-1);
}
while (pEndDay.DayOfWeek != 0) {
    pEndDay = pEndDay.AddDays(1);
}