为什么下面的伪代码会返回2作为周数?不应该是1?
string x = cal.GetWeekOfYear(02.01.2012 as datetime, cultureInfo.currentculture.DateTimeFormat.CalendarWeekRule, CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek).toString();
答案 0 :(得分:6)
您说当前文化的CalendarWeekRule是FirstDay
,其定义为(强调我的):
表示一年的第一周从第一天开始 年份和在下一个指定的第一天之前结束 周
你还说你一周的第一天是星期一。
2012年1月1日是星期日,第一周从那天开始。由于你一周的第一天是星期一,第一周在下一个星期一之前结束,即星期日本身。
因此,2012年1月2日确实是您文化背景下第2周的第一天。