我正在开发一个小型个人游戏/项目(RPG),我希望能够表示一年中有多少天等等。
起初,我认为DateTime
和TimeSpan
对象对我的用途来说是完美的,但它们似乎是在365天的格里高利历中固定的。在一个奇幻游戏中,一个世界拥有更长/更短的一年并不罕见(例如,许多系统使用“理想的”360天)。
我的实施选择是什么?有没有办法根据我的需要配置这些结构,或者我应该实现自己的方法和类来处理这个?
答案 0 :(得分:3)
我认为你应该为自己的方法而不需要struct,需要进行一点点转换,方法可以有效地解决问题
答案 1 :(得分:2)
了解NodaTime,它有一个可能适合您需求的CalendarSystem概念。
答案 2 :(得分:2)
您想要做的是“日计数会议”。这并不是很难实现,本文可以真正帮助您实现它:http://en.wikipedia.org/wiki/Day_count_convention
答案 3 :(得分:0)
DateTime
始终是Gregorian及其数字字段,但在解析或输出字符串时可以使用不同的日历。有关在.NET中使用其他日历的信息,请参阅this article。
内置了许多内容,或者您可以考虑通过扩展System.Globalization.Calendar
来编写自己的自定义日历。
TimeSpan
根本不适用于日历或日期。这是经过时间。它的“日期”仅为24小时,与任何特定日历无关。
Zeeshan可能是正确的,你通常不需要这样做。但我认为这取决于你的游戏有多复杂。