2013-04-10 20 views
14

是否有一個與歷史(大)日期(例如,公元前11,043)一起工作的圖書館? 獲取世紀,千年?圖書館與歷史(大)日期和時間(例如,公元前11,043)工作?

+6

我很好奇:你在做什麼? – 2013-04-10 04:01:35

+0

@JayRiggs遊戲。 – manking 2013-04-10 04:05:00

+0

你以後有什麼庫函數?標準的像AddDays(),DateDiff()和格式化的ToString()?你需要什麼精度 - 幾天,幾秒,幾毫秒?你關心一週中的幾天的名字嗎?如果你想要的只是獲得世紀或千年,那麼除以100或1000就可以完成它,如果你想要更多,那麼找出它是什麼,因爲如果它是非常具體的東西,你可能最好自己做。 – 2013-04-10 04:41:37

回答

2

對於通常的日期和時間,有標準的C++ 11時間類,Glib庫提供GDateTime類,在glibmm中使用C++綁定Glib :: DateTime。也許Boost庫也有類似的界面。如果你需要像恐龍這樣的歷史日期,你可以編寫自己的簡單類(除非我提到的其中一個選項足夠好,在這種情況下,你自己計算世紀或千年非常容易)。

編輯:大多數實現代表的時間是Unix時間的秒數或微秒數,即自1970年以來,這意味着甚至64位整數可能無法代表遠古時代(您可以嘗試計算或網絡搜索或閱讀維基百科有關這些限制)。

在這種情況下,一個很好的解決方案可以是使用一個單獨的AncientTime類,它只有一年的時間,並且您需要的任何其他內容(如月/日/小時)可以通過使用簡單的Standrd DateTime類來實現,可能會忽略一年,或者通過薄包裝將其保持爲0。