命名空间
变体
操作

difftime

来自 cppreference.cn
< 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