簡體   English   中英

將DateTime.DayOfWeek從VB.NET轉換為C#

[英]DateTime.DayOfWeek translation from VB.NET to C#

我在這里有一個簡單的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,哪個為1?

要回答您的問題部分:

現在我不確定哪個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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM