c ++中两次的差异

时间:2012-08-25 10:13:26

标签: c++ time

起初我有时间

time_t t1 = time(0) 

(获取当前时间是对的吗?) 然后

time_t t2 = time(0)

现在我希望找到t1和t2之间的差异,以毫秒为单位 我搜索了很多,但它没有奏效。 很多铸造问题,无法将其更改为毫秒 感谢您的帮助

3 个答案:

答案 0 :(得分:9)

time()返回一个整数类型,给出自纪元以来的时间(以秒为单位),因此您永远不会获得毫秒级的分辨率。改为使用gettimeofday(),它给出了一个带有秒和微秒的结构:

struct timeval t1, t2;
gettimeofday(&t1, NULL);
/* ... */
gettimeofday(&t2, NULL);
int milliSeconds = (t2.tv_sec - t1.tv_sec) * 1000 + (t2.tv_usec - t1.tv_usec)/1000;

答案 1 :(得分:7)

使用difftime

double diff = difftime(t2, t1);

这会给你几秒钟的差异。将diff乘以1000得到毫秒。

答案 2 :(得分:0)