System.Globalization.Calendar.GetWeekOfYear () devuelve resultados impares
Estoy en el medio de calcular los números de semana para fechas, pero elSystem.Globalization.Calendar
devuelve resultados impares para (entre otros años) el 31 de diciembre del año 2007 y 2012.
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);
}
Resultados
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
egún tengo entendido, no debería haber una semana 53 en el año 2007 y 2012, pero los días deberían incluirse en la semana 1. ¿Hay alguna manera de cambiar este comportamiento en elCalendar
?