Criando um novo calendário NSCalendar
-
20-09-2019 - |
Pergunta
Quero ser capaz de converter entre os calendários gregorianos e julianos (Nota: não "Julian Date") usando o NSCalendar no iPhone. Como posso subclasse nscalendar para usar o calendário juliano? Quero fazer isso sem relação a 1582 ou 1752 ou em qualquer ano.
Solução
Enquanto você certamente pode tentar, mas eu suspeito que NSCalendar
é complicado de subclasse. É uma ponte gratuita, que complica as coisas; está entrelaçado com NSLocale, que complica as coisas; É inicializado com identificadores, em vez de ser subclassificado, o que complica as coisas; e não dá orientação sobre quais métodos são seus primitivos que ... complica as coisas ...
Você precisa da subclasse para se conectar a uma arquitetura existente? Caso contrário, provavelmente seria mais fácil criar um objeto a partir do zero que tenha uma interface semelhante. Você pode ser capaz de usar um NSGregorianCalendar
Para fazer a maior parte do trabalho para você e apenas compensar a data nos dias necessários antes de calcular os componentes da data. Você precisará de lógica especial para 1700, 1800 e 1900 (e, claro, 2100, etc.) desde NSGregorianCalendar
Não permitirá que você crie componentes de data para um dia de salto nesses anos, mas isso ainda é mais fácil do que fazer todos os cálculos dos componentes da data manualmente.
Apenas curioso, qual seria o objetivo de tal calendário?