標頭檔案 time.h
函式用途 函式名
得到處理器時間 clock
得到時間差 difftime
設定時間 mktime
得到時間 time
得到以ascii碼表示的時間 asctime
得到以字串表示的時間 ctime
得到指定格式的時間 strftime
utc 世界標準時間(格林尼治時間)
calendar time 日曆時間(從某個時間點到現在的秒數)
epoch 時間點(也是日曆時間)
clock tick 時鐘週期
一、計時:clock()函式
clock_t clock();
返回從「開始這個程式程序」到「程式中呼叫clock()函式」之間的時鐘週期數
在time.h中,clock_t的定義為
#define _clock_t_defined
typedef long clock_t;
#define _clock_t_define
#endif
在time.h中,還定義了乙個常量「clocks_per_sec」,即每秒的時鐘週期數,就是頻率
可以使用clock()/clock_per_sec來計算乙個程序自身執行時間
時鐘週期數 / 單位時間(s)內的時鐘週期數 = 執行時間(秒數)
二、與日期和時間相關的資料結構
首先是
struct tm;
使用tm結構時間為分解時間(broken-down time)
再來說明calendar time,日曆時間,型別為time_t,是從2023年1月1日00:00:00到現在秒數,同樣定義在time.h中
#define _time_t_define
typedef long time_t;
#define _time_t_defined
#endif
同時在time.h中,還有一些函式
double difftime(time_t time1, time_t time0);
time_t mktime(struct tm* timeptr);
time_t time(time_t* timer);
char* asctime(const struct tm* timeptr);
char* ctime(const time_t* timer);
很重要,使用方法:
第一步:通過time()函式獲得當前的日曆時間(秒數),time()接受的引數是乙個time_t型別物件的位址,其時間值就存在傳入的位址上,當然,也可以傳入空指標,這種情況下,只能通過返回機制來提供值;
time_t now;
time(&now);
now = time(null); //now就是現在的日曆時間,從2023年到現在的秒數
第二步:
獲得日期與時間1.(tm結構的時間)
函式struct tm* gmtime(const time_t* timer);
struct tm* localtime(const time_t* timer);
這兩個函式區別在於gmtime()將秒數轉化為格林尼治時間,並返回乙個tm結構儲存這個時間;而localtime()將秒數
轉化為本地時間。
例:struct tm* worldtime;
struct tm* localtime;
time_t t;
t=time(null);
worldtime=gmtime(&t);
localtime=localtime(&t);
獲取日期與時間2.(以年月日時分秒格式)
函式char* asctime(const struct tm* timeptr);
char* ctime(const time_t* timer);
其中asctime通過tm結構體獲得固定格式時間
而ctime通過秒數獲取固定格式時間
例:printf(ctime(&t));
等價於:
struct tm* ptr;
ptr = localtime(&t);
printf(asctime(ptr));
例:struct tm* ptr;
time_t it;
it = time(null); //獲取秒數
ptr = gmtime(&it); //gmtime返回格林尼治時間並存在ptr指向的結構體
printf(asctime(ptr)); //以年月日時分秒顯示了世界時間
printf(ctime(&it)); //以年月日時分秒顯示了本地時間
自定義時間格式:strftime()函式可以將時間自定義格式
size_t strftime(char* strdest, size_t maxsize,
const char* format, const struct tm* timeptr);
說明:根據format定義的格式把timeptr中儲存的資訊存入strdest指向的字串,最多可以向strdest中存放maxsize個字元,返回strdest指向的字串中放置的字元數。
將tm結構的時間轉化為秒數
time_t mktime(struct tm* timeptr);
例: #include
有關時間函式的使用time
三種不同精度的睡眠 unsigned int sleep unsigned int seconds 睡眠多少秒,睡眠被訊號中斷,返回剩餘的睡眠時間 int usleep useconds t usec 睡眠多少微秒,int nanosleep const struct timespec req,st...
C語言time 函式的用法
返回乙個值,即格林尼治時間 1970年1月1日00 00 00到當前時刻的時長,時長單位是秒。要使用time 必須在程式中包含標頭檔案。下面是從檔案中找到的函式宣告 time t time time t t time time t t 從宣告中可以看出,time 函式返回值的資料型別是time t。...
C語言time()函式的用法
time 函式的用途是返回乙個值,即格林尼治時間1970年1月1日00 00 00到當前時刻的時長,時長單位是秒。time 函式是c語言標準庫stdlib中的函式。因此要使用time 必須在程式中包含檔案。下面是從檔案中找到的函式宣告 time t time time t t time time t...