我正在计算日期的周数,但是System.Globalization.Calendar
在2007年和2012年的12月31日等日期上返回了奇怪的结果。
Calendar calendar = CultureInfo.InvariantCulture.Calendar;
var date = new DateTime(2007, 12, 29);
for (int i = 0; i < 5; i++)
{
int w = calendar.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
Console.WriteLine("{0}\t{1}", date.ToString("dd.MM.yyyy"), w);
date = date.AddDays(1);
}
结果
29.12.2007 52
30.12.2007 52
31.12.2007 53 <--
01.01.2008 1
02.01.2008 1
29.12.2012 52
30.12.2012 52
31.12.2012 53 <--
01.01.2013 1
02.01.2013 1
据我所知,2007年和2012年没有第53周,但这些天应该包括在第1周中。在
日历
中是否有更改此行为的方法?
yyyy-MM-dd
时,它按时间顺序排序,但为了可读性进行了编辑。 - sshow