這很尷尬,但我很難對日期時間進行簡單的操作。如何在C++ 11中操作日期/日期時間?
這是我基本上嘗試使用C++ 11的c#版本;
DateTime date1=new DateTime(4,5,2012);
DateTime date2=new DateTIme(7,8,2013);
int day1=date1.Days;
TimeSpan ts=d2-d1;
int diffDays=ts.Days;
我試過了什麼?
std::tm tm;
tm.tm_year=113;
tm.tm_mon=0;
tm.tm_wday=0;
std::time_t tt=mktime(&tm);
std::chrono::system_clock::time_point then = std::chrono::system_clock::from_time_t(tt);
std::chrono::system_clock::time_point now = std::chrono::system_clock::now();
auto e1 = std::chrono::duration_cast<std::chrono::hours>(now - then).count();
E1(379218)的價值是沒有意義都沒有。
我看了一下chrono,它是用於datetime的C++ 11標準庫,但我找不到如何創建int year = 2012,int month = 2,int天= 14。
PS:在C++ 11中是否足夠處理日期/時間/時區?是否需要time.h?
''處理時間,但它不處理日曆,這是你正在尋找(不是從'time_t'轉換)。我還不知道任何建立在''之上的日曆庫。 –
2013-04-05 18:27:53
對於處理日期,有一個優秀的'boost gregorian'庫:http://www.boost.org/doc/libs/1_39_0/doc/html/date_time/gregorian.html。另外QT也有它自己的日期類。 – decden 2013-04-05 18:29:34
除了使用boost庫的好建議之外,歡迎您嘗試使用此答案中描述的日期庫:http://stackoverflow.com/a/15146434/576911。這是直接鏈接到它:http://home.roadrunner.com/~hinnant/bloomington/date.html – 2013-04-05 18:47:35