- C 标准库
- C 库 - 首页
- C 库 - <assert.h>
- C 库 - <complex.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <fenv.h>
- C 库 - <float.h>
- C 库 - <inttypes.h>
- C 库 - <iso646.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdalign.h>
- C 库 - <stdarg.h>
- C 库 - <stdbool.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <tgmath.h>
- C 库 - <time.h>
- C 库 - <wctype.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用资源
- C 库 - 讨论
C 库 - difftime() 函数
C 库的 difftime() 函数用于返回两个时间之间的差值。这两个时间都以日历时间指定,表示自纪元(1970年1月1日00:00:00,协调世界时 (UTC))以来经过的时间。
语法
以下是 C 库 difftime() 函数的语法:
double difftime(time_t time1, time_t time2)
参数
此函数接受以下参数:<>
time1 − 这是结束时间的 time_t 对象。
time2 − 这是开始时间的 time_t 对象。
返回值
此函数返回两个时间之差 (time1 - time2) 作为双精度值。
示例 1
以下是一个基本的 C 库程序,演示了 difftime() 函数。
#include <stdio.h> #include <time.h> int main () { time_t start_t, end_t; double diff_t; printf("Starting of the program...\n"); time(&start_t); printf("Sleeping for 5 seconds...\n"); sleep(5); time(&end_t); diff_t = difftime(end_t, start_t); printf("Execution time = %f\n", diff_t); printf("Exiting of the program...\n"); return(0); }
输出
以上代码产生以下结果:
Starting of the program... Sleeping for 5 seconds... Execution time = 5.000000 Exiting of the program...
示例 2
在此程序中,我们测量睡眠间隔期间经过的时间,并计算两个时间点 (t1 和 t2) 之间的差值。
#include <stdio.h> #include <time.h> #include <unistd.h> int main() { int sc; // second time_t t1, t2; // Current time time(&t1); for (sc = 1; sc <= 4; sc++) sleep(1); // time after sleep in loop. time(&t2); printf("Difference is %.2f seconds", difftime(t2, t1)); return 0; }
输出
以上代码产生以下结果:
Difference is 4.00 seconds
示例 3
以下示例使用嵌套的 for 循环迭代,使用 difftime() 从结束时间减去开始时间。因此,结果打印为循环执行所需的总时间。
#include <stdio.h> #include <time.h> int main() { time_t begin, end; long long prod; time(&begin); for(int i=0; i<10000; i++) { for(int j=0; j<100000; j++) { prod = i*j; } } time(&end); printf("Time required = %f seconds", difftime(end, begin)); return 0; }
输出
执行以上代码后,我们得到以下结果:
Time required = 2.000000 seconds
广告