这很尴尬,但我很难对日期时间进行简单的操作。如何在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