我工作的一個小的個人遊戲/項目(RPG),我想表示有多少天是一年中的能力,等等。使用DateTime和時間跨度與非-365天年
在第一,我認爲DateTime
和TimeSpan
對象對於我的用途來說是完美的,但它們似乎在365天的公曆日曆中是固定的。在幻想遊戲中,世界擁有更長/更短的一年並不罕見(例如,許多系統使用「理想」360天)。
我有什麼選擇來實施?實際上有一種方法可以根據我的需要配置這些結構,還是應該實現我自己的方法和類來處理這個問題?
我工作的一個小的個人遊戲/項目(RPG),我想表示有多少天是一年中的能力,等等。使用DateTime和時間跨度與非-365天年
在第一,我認爲DateTime
和TimeSpan
對象對於我的用途來說是完美的,但它們似乎在365天的公曆日曆中是固定的。在幻想遊戲中,世界擁有更長/更短的一年並不罕見(例如,許多系統使用「理想」360天)。
我有什麼選擇來實施?實際上有一種方法可以根據我的需要配置這些結構,還是應該實現我自己的方法和類來處理這個問題?
我想你應該爲你自己的方法移動無需結構的,有點轉換將被要求和方法,將有望有效地解決這個問題
查找到NodaTime,它有可能會滿足您的需求CalendarSystem概念。
是的,除了NodaTime不允許自定義日曆。 –
你想要做什麼叫做「天數計算慣例」。這不是很難實現,這篇文章可以幫助你做到這一點:http://en.wikipedia.org/wiki/Day_count_convention
DateTime
始終是格里高利的數字字段,但可以在解析或輸出字符串時使用不同的日曆。請參閱this article與.NET中的其他日曆一起使用。
有很多內置的,或者你可以考慮編寫自己的自定義日曆,通過擴展System.Globalization.Calendar
。
TimeSpan
另一方面是不適用於日曆或日期。它用於已用時間。這「日」只是一個24小時的時間段,與任何特定日曆無關。
Zeeshan可能是正確的,你通常不需要這樣做。但我認爲這取決於你的遊戲有多複雜。
+1因爲搜索輪子確實太簡單了,反而讓自己快點。 – Sinatr