2011-09-04 20 views
4

我正在製作一款RPG風格的遊戲,我想爲獨特的月份,星期幾,月份長度和一天的長度開發一款自定義日曆遊戲。我原本打算覆蓋JDK日曆並嘗試這樣做;然而,我碰到了Joda-Time,它爲此目的似乎更有前途和更強大。然而,我很難找出自己的年表並想知道是否有很好的資源(我似乎無法找到)解釋如何創建年表。是否有很好的定製Joda-Time Chronologies資源?

我試過想出一個重載的AssembledChronology,但似乎無法得到它以適應我的需求。我想要的是一個9個月的日曆,每個月40天,每週10天。除此之外,每年的第10個月還有一個最後的「無月」,只能持續5天。

任何幫助/建議表示讚賞。

回答

3

我的建議:不要試圖用喬達時間做。

可能有可能 - 雖然「monthless」月聽起來有點古怪 - 和喬達時間肯定是建立在靈活性...但是讓你的頭一輪所有的AssembledChronology的企業,DelegatedDateTimeFieldDecoratedDateTimeField等是很可能會把你的頭。英寸,然後你需要時區的可能性。

你的日曆聽起來很簡單,說實話 - 非常簡單,從頭開始實施一個簡單的API可能比試圖詳細瞭解Joda時間的實現更簡單。

不要誤解我的意思:我 Joda時間在使用它的正常業務應用程序的時間。它比DateCalendar要好得多,一旦你開始使用它,真的沒有回頭路可走 - 但它複雜。我只是將Joda Time移植到.NET,或者至少是它的「引擎」部分,它有相當好的文檔記錄,但是在整個地方都有大量的繼承層次結構,而且它只是不利於「創建」一個新的日曆系統,最終可能不會花費太多的代碼給已經知道Joda Time細節的人,但是這樣做足夠複雜,否則我會試圖避免它。 )

當然,它確實取決於您需要的API的豐富程度。如果你真的想要Joda Time的所有功能,那麼將你的日曆系統放入其中會比重新實現所有API更簡單。另一方面,如果你是,主要是之後的一種說法,「這是我的自定義日曆中的日期」,那麼有更簡單的方法來實現它。你在遊戲中的日期/時間算術方面真的需要什麼?

+0

正如你所說,遊戲中的日子和我們一樣是24小時的日子,所以時間以1:1的比例傳遞,我只想說,「這是日曆中的日期。」爲用戶。編輯:「無月」可能是一個不好的描述符,它實質上(在世界範圍內)一個簡單的5天節​​日期間,不會在日曆上的9個月中的任何一箇中分組。 –

+0

@izuriel:如果你只是需要計算出今天的日期,那麼可以使用喬達時間計算一些適當的時代以後的日子,然後用簡單的劃分來計算年,日等等。我懷疑是很容易的。話雖如此,聽起來很像科普特年表 - 所以你可以看看這個... –

+0

嗯謝謝你的信息,我會去看看科普特年表。 –

相關問題