GetWeekOfYear返回2,而它应该返回1日期02.01.2012

时间:2012-09-24 07:58:06

标签: c# datetime week-number

为什么下面的伪代码会返回2作为周数?不应该是1?

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

1 个答案:

答案 0 :(得分:6)

您说当前文化的CalendarWeekRuleFirstDay,其定义为(强调我的):

  

表示一年的第一周从第一天开始   年份和在下一个指定的第一天之前结束   周

你还说你一周的第一天是星期一。

2012年1月1日是星期日,第一周从那天开始。由于你一周的第一天是星期一,第一周在下一个星期一之前结束,即星期日本身。

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