C++怎样获取当前时间并和一个之前定义的时间比较?
例如比较当前时间和1月25日13:52:36,看是否超过了这个时间?怎样用C++实现。(C++新手,麻烦解释一下,谢谢)...
例如比较当前时间和1月25日 13:52:36,看是否超过了这个时间?怎样用C++实现。(C++新手,麻烦解释一下,谢谢)
展开
1个回答
展开全部
// system_clock example
#include <iostream>
#include <ctime>
#include <ratio>
#include <chrono>
int main ()
{
using std::chrono::system_clock;
std::chrono::duration<int,std::ratio<60*60*24> > one_day (1);
system_clock::time_point today = system_clock::now();
system_clock::time_point tomorrow = today + one_day;
std::time_t tt;
tt = system_clock::to_time_t ( today );
std::cout << "today is: " << ctime(&tt);
tt = system_clock::to_time_t ( tomorrow );
std::cout << "tomorrow will be: " << ctime(&tt);
return 0;
}
这是从http://www.cplusplus.com/reference/chrono/system_clock/拷贝下来的代码,里面示范了头文件<chrono>中system_clock这个类的用法,如果你要比较是否超过这个时间,可以直接比较tt这个变量的大小值。希望能帮助到您。
追问
比较的时候需要将日月时分秒都各自定义一个变量,还是怎样?能否解释一下?
追答
使用:
time_t mktime(std::tm *timeptr)
然后我们注意到tm这个结构体:
struct tm {
int tm_sec // seconds after the minute 0-61*
int tm_min // minutes after the hour 0-59
int tm_hour // hours since midnight 0-23
int tm_mday // day of the month 1-31
int tm_mon // months since January 0-11
int tm_year // years since 1900
int tm_wday // days since Sunday 0-6
int tm_yday // days since January 1 0-365
int tm_isdst // Daylight Saving Time flag
};
你只要初始化每一个字段就可以得到tm对象,调用mktime方法就可以得到一个time_t对象,于是便可与system_clock中to_time_t方法返回的结果进行比较。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询