Создание нового календаря NSCalendar - PullRequest
2 голосов
/ 26 августа 2009

Я хочу иметь возможность конвертировать григорианский и юлианский календари (примечание: не «юлианская дата») с помощью NSCalendar на iPhone. Как я могу создать подкласс NSCalendar, чтобы использовать юлианский календарь? Я хочу сделать это безотносительно к 1582, 1752 или любому другому году.

1 Ответ

1 голос
/ 26 августа 2009

Хотя вы, конечно, можете попробовать, но я подозреваю, что NSCalendar сложно для подкласса. Это бесплатный мост, что усложняет ситуацию; переплетается с NSLocale, что усложняет вещи; он инициализируется идентификаторами, а не разделяется на подклассы, что усложняет ситуацию; и не дает указаний относительно того, какие методы являются его примитивами, которые ... усложняют вещи ...

Вам нужен подкласс для подключения к существующей архитектуре? Если нет, то, вероятно, было бы проще создать объект с нуля, имеющий аналогичный интерфейс. Возможно, вы сможете использовать NSGregorianCalendar, чтобы выполнить большую часть работы за вас, и просто сместить дату на необходимые дни до вычисления компонентов даты. Вам понадобится специальная логика для 1700, 1800 и 1900 (и, конечно, 2100 и т. Д.), Поскольку NSGregorianCalendar не позволит вам создавать компоненты даты для високосного дня в те годы, но это все же, вероятно, проще, чем делать все вычисление компонентов даты вручную.

Просто любопытно, какой была бы цель такого календаря?

...