2012-09-24 99 views
1

爲什麼僞代碼返回2作爲星期數?它不應該是1嗎?GetWeekOfYear返回2,而它應該返回1日期02.01.2012

string x = cal.GetWeekOfYear(02.01.2012 as datetime, cultureInfo.currentculture.DateTimeFormat.CalendarWeekRule, CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek).toString(); 
+3

取決於。您的計算機上的'CultureInfo.CurrentCulture'是什麼,在您的用戶帳戶下? –

+1

正確,根據日曆設置,1月1日(週日)可能是第1周的結束(和開始!)。 – hvd

+0

您可以通過檢查'CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek'的值來檢查它。 –

回答

6

你說你的當前區域性的CalendarWeekRuleFirstDay,它被定義爲(重點煤礦):

表示一年中的第一週的 一年的第一天開始並且在 星期之前結束於以下指定的第一天。

你也說你星期的第一天是星期一。

2012年1月1日是星期天,第一週從那天開始。由於本週的第一天是星期一,因此第一週在下週一之前結束,即星期天本身。

因此,2012年1月2日確實是您文化背景下的第2周的第一天。