/*********************************************
* @brief 计算时间差
* @param time_end 结束时间
* @param time_beg 开始时间
* @return 时间相差的秒数
********************************************/
double difftime(time_t time_end, time_t time_beg);
!subtitle:说明
计算时间相差的秒数:time_end - time_beg。
!subtitle:参数
time_end - 结束时间
time_beg - 开始时间
!subtitle:返回值
时间相差的秒数
#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)