命名空间
变体
操作

difftime

来自 cppreference.com
< c‎ | chrono
定义在头文件 <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(0);
 
    struct tm 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 seconds have passed since the beginning of the month.

[编辑] 参考

  • C17 标准 (ISO/IEC 9899:2018)
  • 7.27.2.2 difftime 函数 (p: 285)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.27.2.2 difftime 函数 (p: 390)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.23.2.2 difftime 函数 (p: 338)
  • C89/C90 标准 (ISO/IEC 9899:1990)
  • 7.12.2.2 difftime 函数 (p: 171)

[编辑] 另请参阅

C++ 文档 适用于 difftime