C# 为什么这个日期不是在明年的一周?(日历)

C# 为什么这个日期不是在明年的一周?(日历),c#,date,calendar,C#,Date,Calendar,我想计算给定日期的周数 DateTime date = Convert.ToDateTime("31.12.2001"); DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo; System.Globalization.Calendar cal = dfi.Calendar; int weekOfYear = cal.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek,

我想计算给定日期的周数

DateTime date = Convert.ToDateTime("31.12.2001");

DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
System.Globalization.Calendar cal = dfi.Calendar;

int weekOfYear = cal.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek,  
   dfi.FirstDayOfWeek);
在我的DateTimeFormatInfo中,一周的第一天是星期一。我想使用四天规则,这意味着一周属于一年中的大部分时间。 2001年12月31日是星期一,应该是2002年的第一周。但是,weekOfYear返回为53


有人知道怎么回事吗?

有关确切规则,请参阅。简言之,12月31日永远不会是第一周,而是52/53。枚举中的值会影响1月的前几天是哪一周。

相关问题:不是直接重复,但答案中有一些好信息。另请参阅。这没有任何意义。一周应该有7天。MS在做什么奇怪的事?