函数
<ctime>

difftime

double difftime (time_t end, time_t beginning);
返回两个时间之间的差值
计算 beginningend 之间的秒数差。

参数

end
所计算的时间间隔的上限。
beginning
所计算的时间间隔的下限。
如果它描述的时间点晚于 end,则结果为负数。
time_t 是一个基础算术类型的别名,能够表示由函数 time 返回的时间。

返回值

(end-beginning) 的结果,以 double 浮点类型的秒数表示。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* difftime example */
#include <stdio.h>      /* printf */
#include <time.h>       /* time_t, struct tm, difftime, time, mktime */

int main ()
{
  time_t now;
  struct tm newyear;
  double seconds;

  time(&now);  /* get current time; same as: now = time(NULL)  */

  newyear = *localtime(&now);

  newyear.tm_hour = 0; newyear.tm_min = 0; newyear.tm_sec = 0;
  newyear.tm_mon = 0;  newyear.tm_mday = 1;

  seconds = difftime(now,mktime(&newyear));

  printf ("%.f seconds since new year in the current timezone.\n", seconds);

  return 0;
}

输出
3777291 seconds since new year in the current timezone.


数据竞争

并发调用此函数是安全的,不会导致数据竞争。

异常 (C++)

无异常保证:此函数从不抛出异常。

另见