【发布时间】:2019-06-17 21:56:33
【问题描述】:
假设我将 tm 中的时间设置为 23:00:00
ptm->tm_hour = 23; ptm->tm_min = 0; ptm->tm_sec = 0;
我想让用户从中减去时间
ptm->tm_hour -= hourinput; ptm->tm_min -= minuteinput; ptm->tm_sec -= secondinput;
如果用户减去 0 小时 5 分 5 秒,而不是显示为 22:54:55,它将显示为 23:-5:-5。
我想我可以做一堆 if 语句来检查 ptm 是否低于 0 并解决这个问题,但是有没有更有效的方法来获得正确的时间?
【问题讨论】:
-
是的,你需要“做一堆 if 语句来检查 ptm 是否低于 0 并解决这个问题”。
-
不要以这种方式操纵时间,始终根据纪元时间进行操作,这意味着您可以调整自 1970 年以来的毫秒数并使用标准函数调用转换回 HMS,让生活变得更加轻松。