4

目標 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];
4

0 に答える 0