C 速查手冊
11.5 時間 time.h
標頭檔 time.h 宣告許多時間處理的型態 (type) 、結構 (structure) 跟函數 (function) 。例如兩個算術型態 clock_t 與 time_t , clock_t 的單位是 CPU 時間的單位 tick , time_t 的單位則是秒。 CLOCKS_PER_SEC 為 time.h 中定義的常數, clock_t 型態的變數除以 CLOCKS_PER_SEC ,單位就會轉換成秒。
另外有一個專門處理時間格式的結構 tm ,有如下成員
int tm_sec; | 秒 |
int tm_min; | 分 |
int tm_hour; | 時 |
int tm_mday; | 日 |
int tm_mon; | 月 |
int tm_year; | 年 |
int tm_wday; | 星期幾 |
int tm_yday; | 今年已過的天數 |
int tm_isdst; | 日光節約時間的旗標 |
以下為 time.h 中用以處理時間的函數
函數名稱 | 功能 | 函數原型 |
---|---|---|
clock | 回傳程式開始執行後所使用的 cpu 時間 | clock_t clock(void); |
time | 回傳日曆時間,也就是自 1970 年 1 月 1 日到現在所過的總秒數 | time_t time(time_t* timer); |
difftime | 計算兩個時間的秒數差 | double difftime(time_t timer2, time_t timer1); |
mktime | 將結構 tm 中所儲存的時間格式轉換成日曆時間 | time_t mktime(struct tm* ptm); |
localtime | 將日曆時間轉換為結構 tm 所儲存的時間格式 | struct tm* localtime(const time_t* timer); |
asctime | 將結構 tm 中的時間格式轉換為字串 | char *asctime(const struct tm* tmptr); |
ctime | 將日曆時間轉換為字串 | char* ctime(const time_t* timer); |
strftime | 將結構 tm 中的時間格式轉換為指定格式的字串 | size t strftime(char* s, size t n, const char* format, const struct tm* tptr); |