c語(yǔ)言中計(jì)算時(shí)間差的函數(shù),c語(yǔ)言計(jì)算函數(shù)耗時(shí)

c語(yǔ)言編程,怎么計(jì)算時(shí)間

#include stdio.h

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、做網(wǎng)站、銅官網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、銅官網(wǎng)絡(luò)營(yíng)銷、銅官企業(yè)策劃、銅官品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供銅官建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:muchs.cn

#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 );

}

擴(kuò)展資料:

C語(yǔ)言中有兩個(gè)相關(guān)的函數(shù)用來(lái)計(jì)算時(shí)間差,分別是:

time_t time( time_t *t)? ?與 clock_t clock(void)

頭文件: time.h

計(jì)算的時(shí)間單位分別為: s? ?, ms

time_t 和 clock_t 是函數(shù)庫(kù)time.h 中定義的用來(lái)保存時(shí)間的數(shù)據(jù)結(jié)構(gòu)

返回值:

1、time? : 返回從公元1970年1月1號(hào)的UTC時(shí)間從0時(shí)0分0秒算起到現(xiàn)在所經(jīng)過(guò)的秒數(shù)。如果參數(shù) t 非空指針的話,返回的時(shí)間會(huì)保存在 t 所指向的內(nèi)存。

2、clock:返回從“開啟這個(gè)程序進(jìn)程”到“程序中調(diào)用clock()函數(shù)”時(shí)之間的CPU時(shí)鐘計(jì)時(shí)單元(clock tick)數(shù)。? ? ?1單元 = 1 ms。

所以我們可以根據(jù)具體情況需求,判斷采用哪一個(gè)函數(shù)。

具體用法如下例子:

#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)返回兩個(gè)time_t變量間的時(shí)間間隔,即時(shí)間差

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;

}

因此,要計(jì)算某一函數(shù)塊的占用時(shí)間時(shí),只需要在執(zhí)行該函數(shù)塊之前和執(zhí)行完該函數(shù)塊之后調(diào)用同一個(gè)時(shí)間計(jì)算函數(shù)。再調(diào)用函數(shù)difftime()計(jì)算兩者的差,即可得到耗費(fèi)時(shí)間。

C語(yǔ)言中如何計(jì)算時(shí)間差

#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 );

}

擴(kuò)展資料:

C語(yǔ)言中有兩個(gè)相關(guān)的函數(shù)用來(lái)計(jì)算時(shí)間差,分別是:

time_t time( time_t *t)? ?與 clock_t clock(void)

頭文件: time.h

計(jì)算的時(shí)間單位分別為: s? ?, ms

time_t 和 clock_t 是函數(shù)庫(kù)time.h 中定義的用來(lái)保存時(shí)間的數(shù)據(jù)結(jié)構(gòu)

返回值:

1、time? : 返回從公元1970年1月1號(hào)的UTC時(shí)間從0時(shí)0分0秒算起到現(xiàn)在所經(jīng)過(guò)的秒數(shù)。如果參數(shù) t 非空指針的話,返回的時(shí)間會(huì)保存在 t 所指向的內(nèi)存。

2、clock:返回從“開啟這個(gè)程序進(jìn)程”到“程序中調(diào)用clock()函數(shù)”時(shí)之間的CPU時(shí)鐘計(jì)時(shí)單元(clock tick)數(shù)。? ? ?1單元 = 1 ms。

所以我們可以根據(jù)具體情況需求,判斷采用哪一個(gè)函數(shù)。

具體用法如下例子:

#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)返回兩個(gè)time_t變量間的時(shí)間間隔,即時(shí)間差

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;

}

因此,要計(jì)算某一函數(shù)塊的占用時(shí)間時(shí),只需要在執(zhí)行該函數(shù)塊之前和執(zhí)行完該函數(shù)塊之后調(diào)用同一個(gè)時(shí)間計(jì)算函數(shù)。再調(diào)用函數(shù)difftime()計(jì)算兩者的差,即可得到耗費(fèi)時(shí)間。

如何用c語(yǔ)言計(jì)算兩個(gè)時(shí)間的時(shí)間差??

#include

time.h

clock_t

start;

clock_t

end;

start

=

clock();

...//需要計(jì)算時(shí)間的代碼片斷

end

=

clock();

printf("%ld",

(end

-

start)/clk_tck/60);

C語(yǔ)言中計(jì)算2個(gè)時(shí)間的差值的函數(shù)

#include?time.h

#include?stdio.h

time_t?_mktime(?char?*slTime?)?/**?yyyy-mm-dd?**/

{

struct?tm?tm_t;

int?year;

int?mon;

int?day;

sscanf(?slTime,?"%4d-%2d-%2d",?year,?mon,?day?);

tm_t.tm_year?=?year?-?1900;

tm_t.tm_mon?=?mon?-?1;

tm_t.tm_mday?=?day;

tm_t.tm_hour?=?12;

tm_t.tm_min?=?00;

tm_t.tm_sec?=?01;

tm_t.tm_wday?=?0;

tm_t.tm_yday?=?0;

tm_t.tm_isdst?=?0;

return?mktime(?tm_t?);

}

int?daydiff(?char?*date1,?char?*date2?)?/**?yyyy-mm-dd?**/

{

time_t?t1?=?_mktime(?date1?);

time_t?t2?=?_mktime(?date2?);

time_t?diff?=?abs(?t2?-?t1?);

return?(int)(?diff?/?(24*60*60)?);

}

int?main()

{

char?date1[12],?date2[12];

printf(?"input?date1:?"?);

scanf(?"%s",?date1?);

fflush(?stdin?);

printf(?"input?date2:?"?);

scanf(?"%s",?date2?);

fflush(?stdin?);

printf(?"%s?-?%s?is?%d?days\n",?date1,?date2,?daydiff(date1,?date2)?);

}

【急求】c語(yǔ)言 求兩個(gè)時(shí)間的差值

/*可以處理空格?。?!*/

#includestdio.h

#includestring.h

struct?TTime

{

int?h,m,s;

long?GetSec(){return?3600L*h+60*m+s;}

void?StrToTime(char?_str[])

{

int?i,j,len=strlen(_str);

/*去空格*/

for(i=0;ilen;++i)

if(_str[i]=='?')

{

for(j=i;jlen-1;++j)

_str[j]=_str[j+1];

--len;

i=-1;

continue;

}

/*讀小時(shí)*/

j=0;

for(i=0;ilen;++i)

if(_str[i]==':')

break;

else

j=j*10?+?_str[i]-'0';

h?=?j;

/*讀分鐘*/

j=0;

for(++i;ilen;++i)

if(_str[i]==':')

break;

else

j=j*10?+?_str[i]-'0';

m?=?j;

/*讀秒*/

j=0;

for(++i;ilen;++i)

j=j*10?+?_str[i]-'0';

s?=?j;

}

void?ToPlan(long?t)

{

int?hh,mm,ss;

hh?=?t/3600;

t%=3600;

mm?=?t/60;

t%=60;

ss=t;

printf("%2.2d:%2.2d:%2.2d\n",hh,mm,ss);

}

}Ta,Tb,Tc;

void?main()

{

char?a[105],b[105];

gets(a);

gets(b);

Ta.StrToTime(a);

Tb.StrToTime(b);

printf("sec:?%ld,?time:?",Tb.GetSec()-Ta.GetSec());

Tc.ToPlan(Tb.GetSec()-Ta.GetSec());

}

分享名稱:c語(yǔ)言中計(jì)算時(shí)間差的函數(shù),c語(yǔ)言計(jì)算函數(shù)耗時(shí)
本文地址:http://muchs.cn/article36/hcgjsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、定制開發(fā)、營(yíng)銷型網(wǎng)站建設(shè)網(wǎng)站營(yíng)銷、外貿(mào)網(wǎng)站建設(shè)ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作