我在这里有一个简单的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#中,这似乎是不可能的。
我只能将它与枚举本身进行比较。
例如:
while (endDay.DayOfWeek != DayOfWeek.Sunday)
{
}
现在我不确定哪个DayOfWeek是0,哪个是1。 0可能是星期一或星期日。
1可能是星期一或星期二或其他什么..
任何人都可以帮助我并告诉我如何找出DayOfWeek的哪个枚举位置为0,哪个是哪个?
答案 0 :(得分:5)
回答你问题的一部分:
现在我不确定哪个DayOfWeek是0,哪个是1 ...
...此枚举中常量的值范围为
DayOfWeek.Sunday
到DayOfWeek.Saturday
。如果强制转换为整数,则其值的范围从零(表示DayOfWeek.Sunday
)到六(表示DayOfWeek.Saturday
)。
这就是开始使用枚举的重点。你应该坚持使用你展示的代码:
while (endDay.DayOfWeek != DayOfWeek.Sunday)
答案 1 :(得分:1)
您可以将枚举转换为整数来实现此目的。
while ((int)pStartDay.DayOfWeek != 1)
Console.WriteLine("Day 0 is: " + (DayOfWeek)0);
答案 2 :(得分:0)
试试这个:
while (pStartDay.DayOfWeek != 1) {
pStartDay = pStartDay.AddDays(-1);
}
while (pEndDay.DayOfWeek != 0) {
pEndDay = pEndDay.AddDays(1);
}