(Хотел бы я добавить это как отформатированный комментарий к ответу applefreak, который довольно хорош. Но SO не разрешает разметку в комментариях.)
Документация Apple для NSCalendar< /а> говорит:
Некоторым календарям, представленным этим API, может потребоваться преобразовать свои базовые концепции единиц в номенклатуру год/месяц/неделя/день/…. Например, в календаре, состоящем из 4 кварталов в году вместо 12 месяцев, для представления кварталов используется единица месяца.
Это могло бы быть намного яснее, но я думаю, что Apple говорит о том, что в обычных календарях вообще нет «четвертей»; у них есть только годы, месяцы (из них 12) и дни. Но вы можете создать подкласс NSCalendar
(или создать новый экземпляр NSCalendar
?), чтобы в году было только 4 месяца, а затем называть эти месяцы «кварталами», и в интересах таких подклассов Apple предопределила свойство quarter
. Это ужасно сбивает с толку; Бьюсь об заклад, у Apple WTFery есть хорошая история.
В любом случае, я согласен с applefreak, что вы все равно должны иметь дело с датами года/месяца/дня, а не возиться с мифическими «четвертями». В конце концов, что бы вообще означало "прибавить", скажем, два квартала до 31 марта, учитывая, что Q3 короче Q1? (И будет ли ответ зависеть от того, был ли это високосный год?)
Если вы действительно хотите, чтобы «событие повторялось каждый год 1 января, 1 апреля, 1 июля и 1 октября», вам следует написать это. Даже не беспокойтесь о «добавлении трех месяцев», которое имеет те же проблемы, что и «добавление одного квартала».
Кстати, другие люди здесь тоже заметили quarter
WTF. Например: Я хочу получить значение четверти в NSDateComponents класс
person
Quuxplusone
schedule
10.09.2012