2013-04-09 33 views
2

我知道我可以使用boost::gregorian::date_duration來計算時間間隔(以天爲單位),而boost::posix_time::time_duration可以使用時間間隔,但是有一個簡單的數據類型,我可以使用任何從秒到多天的時間間隔?Boost DateTime:time_duration從幾秒到幾天

boost::posix_time::time_duration是什麼限制(最長持續時間)?

回答

1

the documentation

默認情況下,系統了posix_time使用64位整數,32位整數內部,以提供納米第二電平的分辨率 - 對於每個時間值96位。作爲替代方案,可以使用單個64位整數來提供微秒級別的分辨率。對於許多不需要納秒級分辨率的應用,這種替代實現可以提供更好的性能和更緊湊的內存使用。

可變BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG,如在建立/ Jamfile中所定義,這些選項之間進行選擇。要選擇64位整數實現,只需從Jamfile中刪除此定義。

因此,只要您擔心,DevSolar的答案最後會很好地總結它。

+0

在微秒分辨率下的64位= time_duration可以處理約294,241年的日期。夠好了! – 2013-04-09 19:44:11

1

「POSIX時間」通常是指「秒自1970年1月1日」,如果您使用的是32位的值,直到大約2037,更長的時間,如果你使用的是64位,這是很好。所以,如果不看Boost的確切規格,我不會太在意boost::posix_time::time_duration的限制。

相關問題