我希望能够在iPhone上使用NSCalendar在Gregorian和Julian日历之间进行转换(注意:不是“朱利安日期”)。如何将NSCalendar子类化为使用Julian日历?我想这样做而不考虑1582年或1752年或任何一年。
答案 0 :(得分:1)
虽然你当然可以参与其中,但我怀疑NSCalendar
对于子类来说很棘手。这是免费的桥接,这使事情复杂化;与NSLocale缠绕在一起,使事情复杂化;它用标识符初始化而不是子类化,这使事情复杂化;并且没有提供关于哪些方法是其基本原理的指导......使......复杂化......
您是否需要子类才能插入现有架构?如果没有,从头开始创建具有类似接口的对象可能是最容易的。您可以使用NSGregorianCalendar
为您完成大部分工作,并在计算日期组件之前将日期偏移所需的天数。您需要1700,1800和1900(当然还有2100等)的特殊逻辑,因为NSGregorianCalendar
不允许您在这些年中为闰日创建日期组件,但这仍然可能比执行更容易所有日期组件的手工计算。
只是好奇这样一个日历的目标是什么?