【发布时间】:2014-01-27 16:51:24
【问题描述】:
我正在尝试计算两个 time_t 之间的差异。
但是difftime 返回它的第一个参数而不是差值!
我的代码是:
#include <windows.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>
int main(){
time_t etime_t,now_t;
double time_diff;
now_t=1388525484L;
etime_t=1389338644L;
time_diff=difftime(now_t,etime_t);
printf("%f",time_diff);
}
它会打印:
1388525484.000000
我正在使用GCC(在MinWG)进行编译
有什么问题?
【问题讨论】:
-
很明显它是#define difftime(t1,t0) (double)(t1 - t0) 。你可以尝试一次在 printf() 中直接打印“double(t1-t0)”
-
difftime(etime_t,now_t);? (您对类型 time_t 的实现做出假设是不好的。) -
@kripanand:减法没问题!只有
difftime失败! -
@BLUEPIXY:什么?!有什么不同?我希望切换参数会产生负面结果!看来
difftime不合逻辑! (?) 使用now_t - etime_t而不是difftime废话解决了我的问题 - 但我认为不是difftime;-) - 谢谢 -
time_t :它们是能够表示时间的算术类型。 clock_t 和 time_t 中可表示的时间范围和精度是实现定义的。
标签: c windows time mingw time.h