在c ++中两次的差异

Mas*_*oud 3 c++ time

起初我有时间

time_t t1 = time(0) 
Run Code Online (Sandbox Code Playgroud)

(这是获得当前时间的权利吗?)然后

time_t t2 = time(0)
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*n R 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;
Run Code Online (Sandbox Code Playgroud)


das*_*ght 8

用途difftime:

double diff = difftime(t2, t1);
Run Code Online (Sandbox Code Playgroud)

这会给你几秒钟的差异.乘diff1000得到毫秒.

  • difftime不会有小数部分,因为t1,t2是整数类型. (5认同)