非常教程

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函数
C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。