在Win平台上使用time_t进行c ++时间操作

时间:2010-12-16 21:45:04

标签: c++ time

我想以这种方式用time_t变量操作时间:

  1. time1 =获取当前时间time_t(现在说是9:30)
  2. 使用SYSTEMTIME查看我们是否通过了10:00
  3. 如果我们没有通过10:00:评估什么(time_t)time2将在10:00。 并设置time3 = time2 - time1,以便以秒为单位计算到10:00之前剩余的数量。
  4. 我不想使用boost,因为我不想将我的应用程序链接到它。 我希望我明确表示我想检查现在的时间和现状 在10:00说得到现在和预定时间(不是日期)之间的时差。

2 个答案:

答案 0 :(得分:1)

time_t time1;
time(&time1);

tm time0  = *localtime( &time1);

if (time0.tm_hour == 22 && time0.tm_min == 0)
    ; // it 10PM
else
{
    // force time0 to 10PM
    time0.tm_hour = 22;
    time0.tm_min = 0;
    time_t time2 = mktime(&time0);   
}

答案 1 :(得分:0)

使用GetSystemTime()使一切都是Windows,或者使用C运行时值调用time()来获取当前时间。