我正在开发一款RPG风格的游戏,我希望为游戏开发一个自定义日历,其中包含独特的月份,周日,月份长度和日期长度。我原先计划覆盖JDK日历并尝试这样做;然而,我碰到了Joda-Time,它似乎更有希望和强大的目的。但是,我无法想出创建自己的年表,并想知道是否有很好的资源(我似乎无法找到)解释如何创建年表。
我试过想出一个重载的AssembledChronology,但似乎无法满足我的需求。我想要的是一个9个月的日历,每月40天,每周10天。除此之外,每年最后一个“无月”的第10个月只持续5天。
感谢任何帮助/建议。
答案 0 :(得分:3)
我的建议:不要试着用Joda Time来做。
它可能可能 - 虽然“无月”月听起来有点奇怪 - 而Joda Time肯定是建立在灵活性的基础之上......但是让你的头脑全面展开{{1 }},AssembledChronology
,DelegatedDateTimeField
等等可能会让您满意。哦,然后您需要时区的可能性。
您的日历听起来非常简单 - 非常简单,从头开始实施简单的API可能比尝试详细了解Joda Time的实现更简单。
不要误会我的意思:我爱 Joda Time在将其用于普通商业应用程序方面。它比DecoratedDateTimeField
和Date
好得多,一旦你开始使用它就真的没有回头 - 但它 很复杂。
(就上下文而言,我将Joda Time移植到.NET,或者至少是它的“引擎”部分。它有相当好的文档,但是整个地方都有大型的继承层次结构,而且它不是有利于“只是”创建一个新的日历系统。对于已经知道Joda Time详细信息的人来说,最终可能不需要很多代码,但是这很麻烦,否则我只是试图避免它。)
当然,这实际上取决于您需要多么丰富的API。如果你真的想要Joda Time的所有功能,那么适合你的日历系统确实比自己重新实现所有API更简单。另一方面,如果您主要是 ,只是在说“这是我的自定义日历中的日期”,那么有更简单的方法来实现它。您在游戏中的日期/时间算术方面真正需要什么?