C 参考手册
- C 语言
- C 关键词
- 预处理器
- C 标准库头文件
- 类型支持
- 程序支持工具
- 变参数函数
- 错误处理
- 动态内存管理
- 日期和时间工具
- asctime, asctime_r, asctime_s
- ctime, ctime_r, ctime_s
- gmtime, gmtime_r, gmtime_s
- localtime, localtime_r, localtime_s
- difftime
- time
- clock
- timespec_get
- strftime
- wcsftime
- mktime
- CLOCKS_PER_SEC
- tm
- time_t
- clock_t
- timespec
- 字符串库
- 算法
- 数值
- 文件输入/输出
- 本地化支持
- 原子操作库
- 线程支持库
- 实验性 C 标准库
- 有用的资源
- 符号索引
- 注释
difftime
定义于头文件 <time.h>
|
||
以秒数计算二个作为 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); // 设 beg 为月初 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 seconds have passed since the beginning of the month.
引用
- C11 standard (ISO/IEC 9899:2011):
- 7.27.2.2 The difftime function (p: 390)
- C99 standard (ISO/IEC 9899:1999):
- 7.23.2.2 The difftime function (p: 339)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.12.2.2 The difftime function