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