C++怎样获取当前时间并和一个之前定义的时间比较?

例如比较当前时间和1月25日13:52:36,看是否超过了这个时间?怎样用C++实现。(C++新手,麻烦解释一下,谢谢)... 例如比较当前时间和1月25日 13:52:36,看是否超过了这个时间?怎样用C++实现。(C++新手,麻烦解释一下,谢谢) 展开
 我来答
zhouhaibing089
2014-01-25 · TA获得超过331个赞
知道答主
回答量:80
采纳率:0%
帮助的人:96.2万
展开全部
// 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方法返回的结果进行比较。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式