我在这里有一个简单的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吗?
回答您的问题:
现在我不确定哪个DayOfWeek是0,哪个是1。。。
来自MSDN文档
此枚举中的常量值的范围从
DayOfWeek.Sunday
到DayOfWeek.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);
}