В .Net-Framework есть известная ошибка при попытке вычислить номер недели с ISO-8601.
Краткое описание:"При определенииномер недели даты в соответствии со стандартом ISO 8601, основной вызов функции файла Oleaut32.dll по ошибке возвращает неделю 53 вместо недели 1 для последнего понедельника в определенные годы. "(Источник: Microsoft )
Мой вопрос: Эта ошибка также "включена" в MonoTouch, и мне нужно использовать обходной путь, или она исправлена в MonoTouch? MonoTouch-API-Reference здесь не очень помогает ...
ОБНОВЛЕНИЕ: Как мне сказали в комментариях, я провел несколько тестов самостоятельно,Пример кода следует
DateTime first = new DateTime(1851,12,29);
DateTime second = new DateTime(2011,12,30);
DateTime third = new DateTime(1895,12,30);
System.Globalization.Calendar objCal = System.Globalization.CultureInfo.CurrentCulture.Calendar;
int weekNumberFirst = objCal.GetWeekOfYear (first, System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
int weekNumberSecond = objCal.GetWeekOfYear (second, System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
int weekNumberThird = objCal.GetWeekOfYear (third, System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
Console.WriteLine (weekNumberFirst +" "+weekNumberSecond+" "+weekNumberThird);
Предполагаемый результат: 1 52 1
Фактический результат: 53 52 53
Но все равно было бы неплохо иметь какое-то "официальное заявление" для этого ...