约 1618 字

约 8 分钟

#C 语言标准库函数 difftime

/*********************************************
 * @brief 计算时间差
 * @param time_end 结束时间
 * @param time_beg 开始时间
 * @return 时间相差的秒数
 ********************************************/
double difftime(time_t time_end, time_t time_beg);

说明

计算时间相差的秒数:time_end - time_beg。

参数

  • time_end - 结束时间
  • time_beg - 开始时间

返回值

  • 时间相差的秒数

#示例

#include <stdio.h>
#include <time.h>

int main(void)
{
    time_t now = time(NULL); // 获取当前时间戳

    // 日历时间 2008 年 8 月 8 日
    struct tm date = {
        .tm_year = 2008 - 1900,     // 0 表示 1900 年
        .tm_mon = 7,                // 8 月, 0 表示 1 月
        .tm_mday = 8,
        .tm_hour = 0,
        .tm_min = 0,
        .tm_sec = 0
    };

    // 转换为时间戳
    time_t begin = mktime(&date);

    // 计算时间差
    double diff = difftime(now, begin);

    printf("距离 2008 年 8 月 8 日已经过了 %f 秒\n", diff);

    return 0;
}

运行结果:

距离 2008 年 8 月 8 日已经过了 541960167.000000 秒

#推荐阅读

#参考标准

  • C17 standard (ISO/IEC 9899:2018):
    • 7.27.2.2 The difftime function (p: 285)
  • 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: 338)
  • C89/C90 standard (ISO/IEC 9899:1990):
    • 7.12.2.2 The difftime function (p: 171)

更新: 2025/10/25

作者: PlanC

创建: 2025/10/10