(これをapplefreakの回答にフォーマットされたコメントとして追加できればいいのにと思いますが、これはかなり良いものです。しかし、SOはコメントでのマークアップを許可していません。)
NSCalendar に関する Apple のドキュメントには、次のように書かれています。
この API で表される一部のカレンダーは、基本単位の概念を年/月/週/日/… という命名法にマッピングする必要がある場合があります。たとえば、1 年が 12 か月ではなく 4 つの四半期で構成されるカレンダーは、月単位を使用して四半期を表します。
さて、これはもっと明確かもしれませんが、Apple が言っていることは、通常のカレンダーには「四半期」がまったくないということだと思います。年、月 (12 個)、および日しかありません。ただし、年が 4 か月しかないようにサブクラス化NSCalendar
(または ? の新しいインスタンスを作成) し、それらの月を「四半期」と呼び、そのようなサブクラスのために Apple がプロパティを事前に定義しておくことができます。これはひどく紛らわしいです。Apple の WTFery の背後には良い話があるに違いない。NSCalendar
quarter
とにかく、神話上の「四半期」をいじるのではなく、とにかく年/月/日の日付を扱うべきだというapplefreakに同意します。結局のところ、第 3 四半期が第 1 四半期よりも短いことを考えると、3 月 31 日に 2 四半期を「追加」することは何を意味するのでしょうか? (答えは、今年がうるう年かどうかによって異なりますか?)
あなたが本当に望むものが「毎年1月1日、4月1日、7月1日、10月1日に繰り返されるイベント」であれば、それを書くべきです. 「四半期を1つ足す」のと同じ問題がある「3か月を足す」ことさえ気にしないでください。
ところで、ここにいる他の人もquarter
WTF に気づいています。例: NSDateComponents クラスで四半期の値を取得したい