1

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

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

1 回答 1

6

你说你当前文化的CalendarWeekRuleFirstDay,它被定义为(强调我的):

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

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

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

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

于 2012-09-24T08:10:42.283 回答