2009-07-07 120 views
4

我相信這類問題以前一定要問過,但是沒有通過搜索這個網站找到任何東西。如果我錯過了任何類似的問題,我很抱歉。C++中的日期操作

  1. 在C++中有沒有什麼只是做日期操作? 我知道SYSTEMTIME結構(它是我在做GetSystemTime時返回的結構),但它似乎沒有包含任何操作函數。例如,我正在研究能夠「給我2010年7月第二個星期二的日子」的東西。另外,將一個不是從系統時鐘源的時間調整到SYSTEMTIME結構似乎是錯誤的。

  2. 是否有任何庫例程來驗證日期?我沒有想到基本的「檢查日是在1到28之間」。例程必須能夠說29-02-2009不存在。

謝謝。

回答

8

您應該檢出Boost::DateTime

但是,爲了回答你的問題是沒有日期的時間在C++

+0

另一種選擇是[chrono :: date](http://home.roadrunner.com/~hinnant/bloomington/date.html)。 – bames53 2013-07-02 10:23:48

2

的SYSTEMTIME結構和GetSystemTime()函數「處理」這樣的Windows API函數,而不是真正的核心語言或標準庫的一部分。我知道這有點挑剔,但如果有人不在Windows上閱讀此內容,這可能會在稍後節省一些尷尬。

我肯定會推薦Chris提出的Boost :: DateTime庫的建議。除此之外,如果你想編寫標準的C++,你真的只有舊的C日期和時間函數,它們也在ctime。但是,除非你真的被困在一家商店,無論出於什麼原因你都不能使用boost,我會用Boost :: DateTime。

+0

在處理時間的庫上有一百五十(幾乎是)螺栓,Boost :: DateTime是我會推薦的。 ctime,嚴格來說是UNIX的東西,當然它是C而不是C++! – 2009-07-07 13:37:25