用mktime()函數(shù)。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、漾濞網(wǎng)站維護(hù)、網(wǎng)站推廣。
表頭文件:#include time.h
定義函數(shù):time_tmktime(structtm*timeptr);
函數(shù)說明:mktime()用來將參數(shù)timeptr所指的tm結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換成從公元1970年1月1日0時(shí)0分0秒算起至今的UTC時(shí)間所經(jīng)過的秒數(shù)。
返回值:返回經(jīng)過的秒數(shù)。
擴(kuò)展資料:
C語(yǔ)言參考函數(shù)
C語(yǔ)言isgraph()函數(shù):判斷一個(gè)字符是否是圖形字符
C語(yǔ)言isdigit()函數(shù):判斷一個(gè)字符是否為數(shù)字
C語(yǔ)言iscntrl()函數(shù):判斷一個(gè)字符是否為控制字符
C語(yǔ)言isalpha()函數(shù):判斷一個(gè)字符是否是字母
C語(yǔ)言isalnum()函數(shù):判斷一個(gè)字符是否是字母或者數(shù)字
C語(yǔ)言pow()函數(shù):求x的y次方的值
C語(yǔ)言frexp()函數(shù):提取浮點(diǎn)數(shù)的尾數(shù)和指數(shù)部分
參考資料來源:百度百科-mktime
參考資料來源:百度百科-c語(yǔ)言
clock()是C/C++中的計(jì)時(shí)函數(shù),而與其相關(guān)的數(shù)據(jù)類型是clock_t。
它的具體功能是返回處理器調(diào)用某個(gè)進(jìn)程或函數(shù)所花費(fèi)的時(shí)間。函數(shù)返回從“開啟這個(gè)程序進(jìn)程”到“程序中調(diào)用clock()函數(shù)”時(shí)之間的CPU時(shí)鐘計(jì)時(shí)單元(clock tick)數(shù),其中clock_t是用來保存時(shí)間的數(shù)據(jù)類型。
在time.h文件中,我們可以找到對(duì)它的定義:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
clock_t其實(shí)就是long,即長(zhǎng)整形。該函數(shù)返回值是硬件滴答數(shù),要換算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC。比如,在VC++6.0下,這兩個(gè)量的值都是1000,這表示硬件滴答1000下是1秒,因此要計(jì)算一個(gè)進(jìn)程的時(shí)間,用clock()除以1000即可。
clock的返回值一直是0的原因:
1、編譯器優(yōu)化,for循環(huán)實(shí)際根本沒執(zhí)行,直接跳過去了,所以時(shí)間為0。
2、clock計(jì)算的是程序占用cpu的時(shí)間,如果你的程序執(zhí)行的動(dòng)作很少,那么clock算出的時(shí)間也很少。
3、建議使用time gettimeofday函數(shù)來計(jì)時(shí)。
擴(kuò)展資料:
C語(yǔ)言中clock()函數(shù)的程序例1:(TC下運(yùn)行通過)
#include?stdio.h
#include?time.h
int?main(void)
{
clock_t?start,?end;
start?=?clock();
delay(2000);
end?=?clock();
printf("The?time?was:?%f\n",?(double)(end?-?start)?/?CLK_TCK);
return?0;
}
說明:CLK_TCK?定義在TC中的time.h中:#define?CLK_TCK18.2。
在VC6.0中也有關(guān)于CLK_TCK的宏定義,不過其值不再是18.2,而是1000。
實(shí)際上在VC6.0中CLK_TCK已完全等同CLOCKS_PER_SEC。
參考資料來源:百度百科-clock()
使用C語(yǔ)言編寫程序需要獲得當(dāng)前精確時(shí)間(1970年1月1日到現(xiàn)在的時(shí)間),或者為執(zhí)行計(jì)時(shí),可以使用gettimeofday()函數(shù)。
用 法: void gettime(struct time *timep);
C語(yǔ)言函數(shù)
#include sys/time.h
int gettimeofday(struct timeval*tv, struct timezone *tz);
其參數(shù)tv是保存獲取時(shí)間結(jié)果的結(jié)構(gòu)體,參數(shù)tz用于保存時(shí)區(qū)結(jié)果:
struct timezone{
int tz_minuteswest;/*格林威治時(shí)間往西方的時(shí)差*/
int tz_dsttime;/*DST 時(shí)間的修正方式*/
}
timezone 參數(shù)若不使用則傳入NULL即可。
而結(jié)構(gòu)體timeval的定義為:
struct timeval{
long int tv_sec; // 秒數(shù)
long int tv_usec; // 微秒數(shù)
}
它獲得的時(shí)間精確到微秒(1e-6 s)量級(jí)。在一段代碼前后分別使用gettimeofday可以計(jì)算代碼執(zhí)行時(shí)間:
struct timeval tv_begin, tv_end;
gettimeofday(tv_begin, NULL);
foo();
gettimeofday(tv_end, NULL);