【发布时间】:2009-08-26 12:25:26
【问题描述】:
我希望能够在 iPhone 上使用 NSCalendar 在公历和儒略历之间进行转换(注意:不是“儒略日期”)。如何子类 NSCalendar 以使用儒略历?我想这样做而不考虑 1582 或 1752 或任何给定的年份。
【问题讨论】:
标签: cocoa gregorian-calendar nscalendar
我希望能够在 iPhone 上使用 NSCalendar 在公历和儒略历之间进行转换(注意:不是“儒略日期”)。如何子类 NSCalendar 以使用儒略历?我想这样做而不考虑 1582 或 1752 或任何给定的年份。
【问题讨论】:
标签: cocoa gregorian-calendar nscalendar
虽然您当然可以尝试一下,但我怀疑 NSCalendar 难以继承。它是免费桥接的,这使事情变得复杂;与 NSLocale 纠缠在一起,使事情变得复杂;它是用标识符初始化而不是被子类化,这使事情变得复杂;并且没有提供关于哪些方法是它的原语的指导......这使事情变得复杂......
您是否需要子类才能插入现有架构?如果没有,从头开始创建一个具有类似界面的对象可能是最简单的。您可以使用NSGregorianCalendar 为您完成大部分工作,并在计算日期组件之前将日期偏移必要的天数。您将需要 1700、1800 和 1900(当然还有 2100 等)的特殊逻辑,因为 NSGregorianCalendar 不会让您为那些年的闰日创建日期组件,但这仍然可能比完成所有手动计算日期分量。
只是好奇这样的日历的目标是什么?
【讨论】: