C参考手册
日期与时间 | Date and time
difftime
在头文件<time.h>中定义 |
|
|
---|---|---|
double difftime(time_t time_end,time_t time_beg); |
|
|
计算两个日历时间之间的差异,以秒为单位的time_t
对象(time_end - time_beg
)。如果time_end
指的是之前的时间点,time_beg
那么结果是负的。
参数
time_beg,time_end |
- |
时间来比较 |
---|
返回值
两秒之差。
笔记
在POSIX系统上,time_t
以秒为单位进行测量,difftime
相当于算术相减,但C和C ++允许使用小数单位time_t
。
例
以下程序会计算自月初以来经过的秒数。
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t now;
time(&now);
struct tm beg;
beg = *localtime(&now);
// set beg to the beginning of the month
beg.tm_hour = 0;
beg.tm_min = 0;
beg.tm_sec = 0;
beg.tm_mday = 1;
double seconds = difftime(now, mktime(&beg));
printf("%.f seconds have passed since the beginning of the month.\n", seconds);
return 0;
}
输出:
自本月初以来已经过去了1937968秒。
参考
- C11标准(ISO / IEC 9899:2011):
- 7.27.2.2 difftime函数(p:390)
- C99标准(ISO / IEC 9899:1999):
- 7.23.2.2 difftime函数(p:339)
- C89 / C90标准(ISO / IEC 9899:1990):
- 4.12.2.2 difftime函数