Вопрос

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

Это было полезно?

Решение

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

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

Просто интересно, какова будет цель такого календаря?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top