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(&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

[编辑] 参阅

difftimeC++文档