我搜索了一個類似的帖子,但似乎沒有人回答這個問題。.NET Calendar.GetWeekOfYear返回不正確的結果en-US
對於日期01/01/2005和2008年12月28日,星期數應爲1,根據該timeanddate.com的網站,假設它是正確的:
問題是,C#代碼我有產生用於01/01/2005正確的星期數的結果,但對於2008年12月28日,返回53的不正確的結果,而不是1:
CultureInfo clUS = new CultureInfo("en-US", false);
int wkNm = clUS.Calendar.GetWeekOfYear(
new DateTime(2005, 1, 1, clUS.Calendar),
clUS.DateTimeFormat.CalendarWeekRule,
clUS.DateTimeFormat.FirstDayOfWeek
); // returns 1
wkNm = clUS.Calendar.GetWeekOfYear(
new DateTime(2008, 12, 28, clUS.Calendar),
clUS.DateTimeFormat.CalendarWeekRule,
clUS.DateTimeFormat.FirstDayOfWeek
); // returns 53
爲CalendarWeekRule
和FirstDayOfWeek
,我使用的EN-US區域性的默認選項。
是不是[this](http://stackoverflow.com/questions/428957/is-net-giving-me-錯誤的週數爲12月29日?rq = 1)同樣的事情? –
這很接近,該職位與ISO 8601相關,我正在查看en-US。我認爲* timeanddate.com日曆是錯誤的。據維基百科(http://bit.ly/11gklmV),加拿大,美國和墨西哥,今年的第一週有1月1日和第一個星期六。 timeanddate.com網站2008年(美國)顯示12月的最後一週爲第1周,但沒有1月1日或第1個星期六。如果我查看CalendarLabs網站(http://bit.ly/zcHkD),它將在12月的最後一週顯示爲53周,這似乎是正確的。 – user1964087