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.

Foi útil?

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top