赞助

c++ 实现两个时间差是否超过设置的期限来判断是否过期

工作中没有小事:点石成金,滴水成河,只有认真对待自己所做的一切事情,才能克服万难,取得成功

在软件经常有许可使用期限,到了某个时间就会过期

例如:设置30天,到期之后提醒用户

time_t  fist_time =time(NULL);
...
if(difftime(time(NULL) ,fist_time) > 30 * 24 * 60 * 60)
{
  //超过30天
}

在此分享一个

uint64_t expired = 1793347735;
time_t cur = 1790585942;

if ((cur - expired)  >0 )
{
    std::cout << "expired" << std::endl;
}
当前时间小于过期时间,按道理是不会走if里面的打印的,但事实是(cur - expired) 结果为一个很大的数 ,这个if ((cur - expired)  >0 )一直为真,因为有符号的和无符号的进行比较,有符号转成无符号,执行无符号减法,结果是 uint64_t(无符号),负数会回绕成天文数字

 

posted @ 2026-09-28 17:09  车臣  阅读(3)  评论(0)    收藏  举报