我搜索了一个类似的帖子,但似乎没有人回答这个问题。
对于日期01/01/2005和12/28/2008,周数应该是 1,根据timeanddate.com网站,假设它是正确的:
2005 年 1 月 1 日和2008 年 12 月 28 日
问题是,我的 C# 代码为01/01/2005生成了正确的周数结果,但为12/28/2008生成了不正确的结果,返回 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
and FirstDayOfWeek
,我使用的是 en-US 文化的默认选项。