像这样的代码:
wsprintf(wsTime, TEXT("%.2d:%.2d:%.2d"), (tNow - tStart) / 3600, ((tNow - tStart) / 60) % 60, (tNow - tStart) % 60);
其中的wsTime变量是一个WCHAR
类型的数组,长度为100。tNow
和tStart
都是time_t
类型的数据,用来比对当前时间和开始时间,且tNow
是每隔一秒就会更新的,但是以上代码的执行结果永远都是00:00:00
,也就是数字不会递增。
但是如果将(tNow - tStart) % 60
换到前面,也就是这样:
wsprintf(wsTime, TEXT("%.2d:%.2d:%.2d"), (tNow - tStart) % 60, (tNow - tStart) / 3600, ((tNow - tStart) / 60) % 60);
就能够正常地输出01:00:00
,即正常地递增。
不知道为何会有这么奇怪的问题,求各路大神指导……
开发环境是VS2013。