- 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 程式設計資源
- 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
廣告