获得持续时间

时间:2011-11-16 10:45:23

标签: c time

我正在尝试衡量某事的持续时间。 当它开始时我调用start_time = time(NULL); 当它结束时:

time_t a_time = time(NULL) - start_time;
struct tm * ts = localtime(&a_time);
char time_buff[32];
memset (time_buff,0,32);
sprintf (time_buff, "Duration: %02d:%02d:%02d", ts->tm_hour, ts->tm_min, ts->tm_sec);

问题是ts-> tm_hour总是2。

请指教。 谢谢, 内厄姆

3 个答案:

答案 0 :(得分:2)

函数localtime将时间转换为完整的日期和时间。你最好通过分区和模运算将它转换为天,小时和分钟。

答案 1 :(得分:1)

你最终生活在距离UTC时间2小时的国家吗?

通过致电localtime(),将您的来电替换为gmtime()(当前时区)。

答案 2 :(得分:1)

为什么不使用一个返回经过的毫秒数(clock或gettimeofday)然后转换为小时/分钟/秒的函数?