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
廣告