у меня есть
startdate 2010-01-01 (я просто предполагаю, что это первый день недели)
и
enddate 2010-07-31 (я предполагаю, что это первый день недели)
Я хочу, чтобы из метода возвращались номера всех недель для каждого первого дня недели для
выше времени. Я не могу предположить, что первый день недели всегда понедельник, потому что мой пользователь
может быть из Швеции , США или любого другого. Алгоритм должен быть совместим с ISO 8601.
Окончательный результат должен выглядеть примерно так:
2010-01-01 , 1
2010-01-08 , 2
2010-01-15 , 3
2010-01-22 , 4
...
2010-07-31 , ~28
Да, я знаю, что в Google полно ссылок на эту тему, но никто не делает это правильно. Они все
предположим, что понедельник - первый день недели. Может быть, некоторые из богов c # на SO проходят мимо: P
EDIT:
Что вы скажете этому коду:
public static int GetWeekNumber(DateTime dtPassed)
{
CultureInfo ciCurr = CultureInfo.CurrentCulture;
int weekNum = ciCurr.Calendar.GetWeekOfYear(dtPassed, CalendarWeekRule.FirstDay, DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek);
return weekNum;
}
Я нашел его частично в Google и немного изменил.