簡體   English   中英

DateTime 計算的奇怪問題

[英]Weird Issue with DateTime calculation

我可能工作太努力了,但有人可以向我解釋以下內容,取自Immediate window?

(int)DateTime.Now.Date.DayOfWeek = 4

(int)DayOfWeek.Sunday = 0

(int)DateTime.Now.Date.DayOfWeek - (int)DayOfWeek.Sunday = 4


(int)DayOfWeek.Sunday - (int)DateTime.Now.Date.DayOfWeek = 無法評估表達式`

謝謝閱讀。

編輯:

它的即時 window 給了我這個奇怪的結果,而不是常規代碼。

截圖: http://ploader.net/files/0c2556df475b3075634d7fd2b0575794.PNG

編輯2:

社區似乎認為它是 VS2010 中的一個錯誤。 我想知道@EricLippert 或@JonSkeet 是否可以花一點時間來確認這一點,或者如果不是,請提供有關此行為的解釋?

它看起來特定於常量 0 和非文字值。 以下工作正常:

int zero = 0;
zero - (int)DateTime.Now.Date.DayOfWeek
-4

雖然以下失敗:

int four = 4;
0 - four
Could not evaluate expression

更新:我找不到類似的錯誤報告,所以我創建了一個: https://connect.microsoft.com/VisualStudio/feedback/details/679501/integer-literal-0-integer-variable-could-not-evaluate -表達式立即窗口

更新 #2:Microsoft 能夠重現該問題並將其解決為“無法修復”,這意味着 Visual Studio 的下一個版本有希望,但 VS2010 沒有。

我不知道,這對我來說似乎是一個錯誤。

// This doesn't work
0 - (int)DateTime.Now.Date.DayOfWeek

// But loads of similar variations do:
1 - (int)DateTime.Now.Date.DayOfWeek
-1 - (int)DateTime.Now.Date.DayOfWeek
a - (int)DateTime.Now.Date.DayOfWeek
0 - (int)DayOfWeek.Thursday

在任何情況下,編譯代碼中的一切都按預期運行。

暫無
暫無

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

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