0

私を助けてください、私は立ち往生しています!

シンプルなカレンダーアプリを作ろうとして必死です。特定の年の週の値 (52 または 53) が必要ですが、この質問に対する答えは initRecurrenceWithFrequency を使用することにあると理解しています。しかし、コードを機能させることができません!!!! 助けてください。

/ジョン


@アリソフトウェア

どうもありがとう!

しかし、このコード スニペット (以下) では、53 ではなく 1 が返されました。理由はわかりますか? ところで、私のシミュレーター設定では、カレンダーとしてグレゴリオ暦が示されています。/ジョン

 NSDateComponents *comps = [NSDateComponents alloc];
    [comps setDay:31];
    [comps setMonth:12];
    [comps  setYear:year];

    NSCalendar *usersCalendar =[[NSLocale currentLocale] objectForKey:NSLocaleCalendar];
    NSDate *date = [usersCalendar dateFromComponents:comps];

    NSDateComponents *weekComps =
    [usersCalendar components:NSWeekCalendarUnit fromDate:date];

    NSInteger totalNumberOfWeeksInThisYear = [weekComps week];
4

1 に答える 1

1

その年のどの週#が特定の日付であるか、または同様のもの(1年の週数など)を知る必要がある場合は、そのために使用する必要がありますNSDateComponents

Appleのドキュメントにある日付と時刻のプログラミングガイドを実際に読む必要があります。日付、カレンダー、日付コンポーネント、概念と微妙な点(うるう年など)、日付とカレンダーに関連するCocoaクラスが相互に作用する方法、およびそれらの使用方法についてすべて説明します。

これは非常に詳細であり(実際、Appleのドキュメントにあるすべてのプログラミングガイドのように)、このドキュメントを読まないとカレンダーアプリの作成について考えることはできません

(ところで、あなたが一年の週についてどのように質問するかは、 ?!!のinitRecurrenceWithFrequency方法に関連しているのかわかりません)EKRecurrenceRule

于 2012-09-14T00:00:26.320 に答える