C語言有關time的函式小結

2021-08-10 18:27:54 字數 2721 閱讀 5009

標頭檔案 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...