.Net-Frameworkには、ISO-8601で週番号を計算しようとしたときに既知のバグがあります。
簡単な説明:「ISO8601標準に従って日付の週番号を決定する場合、Oleaut32.dllファイルへの基になる関数呼び出しは、特定の年の最後の月曜日の第1週ではなく第53週を誤って返します。」(出典: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
しかし、これについての「公式声明」があれば、それでもいいでしょう...