cocoa - 创建一个新的 NSCalendar 日历

标签 cocoa gregorian-calendar nscalendar

我希望能够在 iPhone 上使用 NSCalendar 在公历和儒略历(注意:不是“儒略日期”)之间进行转换。如何子类化 NSCalendar 以使用儒略历?我想这样做,而不考虑 1582 年或 1752 年或任何给定的年份。

最佳答案

虽然您当然可以尝试一下,但我怀疑 NSCalendar 很难子类化。它是免费桥接,这使事情变得复杂;与 NSLocale 纠缠在一起,这使事情变得复杂;它是用标识符初始化的,而不是被子类化,这使事情变得复杂;并且没有给出关于哪些方法是其原语的指导...使事情变得复杂...

您是否需要子类才能插入现有架构?如果没有,从头开始创建一个具有类似接口(interface)的对象可能是最简单的方法。您可以使用 NSGregorianCalendar 为您完成大部分工作,只需在计算日期组件之前将日期偏移必要的天数即可。您需要 1700、1800 和 1900(当然还有 2100 等)的特殊逻辑,因为 NSGregorianCalendar 不允许您为这些年份的闰日创建日期组件,但这仍然可能比手动计算所有日期组件更容易。

只是好奇这样一个日历的目标是什么?

关于cocoa - 创建一个新的 NSCalendar 日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1334318/

相关文章:

java - 用Java制作数字时钟

java - 如何将 java.util.sql 存储到 XMLGregorianCalendar

ios - 将 NSCalendarUnit 转换为 Swift2

objective-c - 时区支持值 - objective-c - cocoa-touch

Cocoa 可访问性 API 和空间?

objective-c - 从 NSTextField 类别内访问 View ?

objective-c - NSImage + NSColor + 图案

macos - 启用 NSScrollView 使用 Interface Builder 中的自动布局滚动其内容

java - 为什么其中一种方法适用于设置日期,而另一种方法则不行?

swift - 使用 NSDate 获取星期几