目標 c で年と週番号を指定して、週の最初の日付を取得しようとしています。オランダのカレンダーを考慮に入れたい。ここでは月曜日が週の最初の日です。したがって、MS Outlook と同じように、関数に 2012 と 1 を渡したときに 2012-01-02 を返すようにしたいと思います。
これは私が試したことです:
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *comps = [[NSDateComponents alloc] init];
comps.year = 2012;
comps.weekOfYear = 1;
comps.weekday = 2;
NSDate *date = [cal dateFromComponents:comps];
日付は 2012-01-02 ... になると思いますが、代わりに 2012-12-30 23:00:00 を返します。そして、comps.weekday を 1 に変更すると、2013-01-05 23:00:00??!! が返されます。
これは私にはまったく意味がありません。誰かがこれについて説明してくれますか、それとも使用する正しいコードを教えてくれますか?
答え:
これが私にとっての解決策でした:
[components setWeekOfYear:weekNr];
[components setYearForWeekOfYear:year];
[components setWeekday:2];