-
1 # 科技隆
-
2 # 帥帥噠湯
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
unsigned char time1[] = { 10, 8, 31, 9, 26 };
unsigned char time2[] = { 10, 8, 31, 9, 50 };
struct tm t1 = {0};
struct tm t2 = {0};
time_t _t1;
time_t _t2;
double diff;
t1.tm_year = time1[0] + 100;
t1.tm_mon = time1[1];
t1.tm_mday = time1[2];
t1.tm_hour = time1[3];
t1.tm_min = time1[4];
t2.tm_year = time2[0] + 100;
t2.tm_mon = time2[1];
t2.tm_mday = time2[2];
t2.tm_hour = time2[3];
t2.tm_min = time2[4];
_t1 = _mkgmtime( &t1 );
_t2 = _mkgmtime( &t2 );
diff = difftime(_t2, _t1 );
printf( "相差 %.0f 分鐘\n", diff / 60 );
}
-
3 # himorning
在很多情況下,為了評判某個演算法,函式的優劣,特別是比較同一個功能的兩個函式的效率高低時,我們經常透過計算耗費時間作為判斷標準。C語言中有兩個相關的函式用來計算時間差,分別是:
time_t time( time_t *t) 與 clock_t clock(void)
標頭檔案: time.h
計算的時間單位分別為: s , ms
time_t 和 clock_t 是函式庫time.h 中定義的用來儲存時間的資料結構。
返回值:1、time : 返回從公元1970年1月1號的UTC時間從0時0分0秒算起到現在所經過的秒數。如果引數 t 非空指標的話,返回的時間會儲存在 t 所指向的記憶體。
2、clock:返回從“開啟這個程式程序”到“程式中呼叫clock()函式”時之間的CPU時鐘計時單元(clock tick)數。 1單元 = 1 ms。
所以我們可以根據具體情況需求,判斷採用哪一個函式。
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
time_t c_start, t_start, c_end, t_end;
c_start = clock(); //!< 單位為ms
t_start = time(NULL); //!< 單位為s
system("pause");
c_end = clock();
t_end = time(NULL);
//!<difftime(time_t, time_t)返回兩個time_t變數間的時間間隔,即時間差
printf("The pause used %f ms by clock()\n",difftime(c_end,c_start));
printf("The pause used %f s by time()\n",difftime(t_end,t_start));
system("pause");
return 0;
}
-
4 # 貝塔開飛機
C語言中有兩個相關的函式用來計算時間差,分別是:
time_t time( time_t *t) 與 clock_t clock(void)
計算的時間單位分別為: s , ms
time_t 和 clock_t 是函式庫time.h 中定義的用來儲存時間的資料結構
返回值:
1、time : 返回從公元1970年1月1號的UTC時間從0時0分0秒算起到現在所經過的秒數。如果引數 t 非空指標的話,返回的時間會儲存在 t 所指向的記憶體。
2、clock:返回從“開啟這個程式程序”到“程式中呼叫clock()函式”時之間的CPU時鐘計時單元(clock tick)數。 1單元 = 1 ms。
所以我們可以根據具體情況需求,判斷採用哪一個函式。
具體用法如下例子:
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
time_t c_start, t_start, c_end, t_end;
c_start = clock(); //!< 單位為ms
t_start = time(NULL); //!< 單位為s
system("pause");
c_end = clock();
t_end = time(NULL);
//!<difftime(time_t, time_t)返回兩個time_t變數間的時間間隔,即時間差
printf("The pause used %f ms by clock()\n",difftime(c_end,c_start));
printf("The pause used %f s by time()\n",difftime(t_end,t_start));
system("pause");
return 0;
}
因此,要計算某一函式塊的佔用時間時,只需要在執行該函式塊之前和執行完該函式塊之後呼叫同一個時間計算函式。再呼叫函式difftime()計算兩者的差,即可得到耗費時間。
回覆列表
解釋:
time_t time (time_t *timer)獲取時間
double difftime(time_t timer1,time_t timer0) 計算時間差,精確到秒。
程式碼:
#include<time.h>
#include<studio.h>
void main ()
{
time_t start,end;
double cost;
timer(&start);
sleep(1);
time(&end);
cost=difftime (end,start);
printf("%d/n",cost);
}
還有什麼不懂的可以來問我呀!