Так. Стоп.
1. Вы согласны, что приведенная функция работает некорректно?
Или Вы считаете, что 27.12.10 - , 26.12.11 - , 24-30.12.12 - это 1 рабочая неделя??
2. Если Вы согласны, что это не так, что это 53 недели в году, тогда идем дальше.
Вы согласны, что ошибка возникает именно в методе WeekOfYear?
3. Вы согласны, что они возникает именно при первой проверке if (week > 52)?
Итак, если Вы согласны, то осталось понять, а как исправить функцию, что бы она возвращала корректные значения для России.
Этого можно добиться, исключив данную проверку (для России). Рассматривать расчет testDate, как Вы уже указали, некорректно, так как цель данного расчет - это посмотреть, не переходит ли неделя через год и сбросить счетчик текущей недели.
Согласны? Или есть какие-либо подводные камни, которые я не учел?
С Уважением,
Георгий
|