He siguiente código para obtener el WeekNumber del año dado en el Tiempo objeto DateTimeSemana del año C# de fecha y hora
public static int WeeksInYear(DateTime date)
{
GregorianCalendar cal = new GregorianCalendar(GregorianCalendarTypes.Localized);
return cal.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
}
Ahora daré la función de la fecha 1/1/2012 wich debe devolver la semana 1, pero regresa la semana 52. Y no puedo entender por qué. Alguien tiene una idea de por qué ?
tratar con este 'cal.GetWeekOfYear (fecha, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Sunday)' – Raghuveer
@RaghuveerGuthikonda: Eso funcionaría sólo en este caso especial. P.ej. 1/1/2013 podría ser un sábado, no funcionará. Es la forma en que se calculan las semanas calendario. El 1/1/2012 está en la semana 52 y debería estar allí. – basti