2012-11-12 68 views
0

我想在C++中使時間數據類型。要計算日期我們可以使用朱連編號。是否有任何具體的數字來計算時間像朱利安號碼是用來計算日期是否有任何具體的數字來計算時間

+0

日期和時間給廣大的特殊情況下,令人吃驚很難得到正確。你最好查找一下現有的實現測試套件來檢查你的實際是否正確。就個人而言,我會避免完全滾動自己! – Rook

+0

@Rook:或者以另一種方式來看待,時間相當簡單,但*日曆*太複雜。 –

+0

@SteveJessop我會看到你的「相當容易」,並提出你「時區」和「閏秒」;-) – Rook

回答

2

當他們需要一個數字來表示絕對日期/時間時,大多數程序使用「非閏秒自epoc」。 epoc可以是任何東西,但1970年1月1日午夜UTC是很常見的,因爲很多操作系統都使用它。如果你使用32位有符號類型,那麼這對於+/- 68年來說是很好的。一個64位的類型很容易覆蓋宇宙的年齡。爲了少數目的(如GPS和天文學)「非閏秒」不夠好,需要經過實際的時間。

您也可以獲得該主題的變體,例如Java標準庫會促使您從epoc開始轉向非跳躍毫秒,因爲這是System.currentTimeMillis()返回的結果。這隻適用於32位類型大約一個月,這就是爲什麼比Java更老的環境並不總是擁抱它。

0

不知道理解的,但也許你可以給看看struct tm

tm structure