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

标签 c++ time

好吧,我想以这种方式使用 time_t 变量来操纵时间:

  1. time1 = 获取当前时间 time_t(假设现在是 9:30)
  2. 使用 SYSTEMTIME 查看我们是否过了 10:00
  3. 如果我们没有超过 10:00:评估 10:00 时的 (time_t)time2。 并设置 time3 = time2 - time1 以秒为单位计算到 10:00 还剩多少时间。

我不想使用 boost,因为我不想将我的应用程序链接到它。 我希望我说清楚了,我想看看现在几点,现在几点 比如 10:00 以获得现在和预定义时间(不是日期)之间的时差。

最佳答案

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);   
}

关于在 Win 平台中使用 time_t 进行 c++ 时间操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4465661/

相关文章:

python - 在 while 语句中比较两个日期时程序空闲

PHP 函数运行时间?

c++ - 如何初始化结构的 vector 成员?

algorithm - 在 NTP 上使用 Berkeleys 算法进行时间同步是否更好?

c++ - std::unordered_map 是如何存储和比较其键值以实现无序快速访问元素的?

c++ - Makefile.am 的 EXTRA_DIST 重复目录名

javascript - 如何在下午 4 点获得今天的时间戳?

计算C中的时间差

c++ - 为什么使用 shared_ptr 创建弱指针?

C++ Allegro - 位图变黑?