C語言時間操作函式

2021-08-15 11:39:43 字數 2259 閱讀 2029

一、獲取日曆時間

time_t是定義在time.h中的乙個型別,表示乙個日曆時間,也就是從2023年1月1日0時0分0秒到此時的秒數,原型是:

typedef long time_t;        /* time value */

可以看出time_t其實是乙個長整型,由於長整型能表示的數值有限,因此它能表示的最遲時間是2023年1月18日19時14分07秒。

函式time可以獲取當前日曆時間時間,time的定義:

time_t time(time_t *)

code:

#include

#include

using namespace std;  

int main(void)  

二、獲取本地時間

time_t只是乙個長整型,不符合我們的使用習慣,需要轉換成本地時間,就要用到tm結構,time.h中結構tm的原型是:

struct tm

;可以看出,這個結構定義了年、月、日、時、分、秒、星期、當年中的某一天、夏令時。可以用這個結構很方便的顯示時間。

用localtime獲取當前系統時間,該函式將乙個time_t時間轉換成tm結構表示的時間,函式原型:

struct tm * localtime(const time_t *)

使用gmtime函式獲取格林尼治時間,函式原型:

struct tm * gmtime(const time_t *)

code:

#include

#include

using namespace std;  

void dsptime(const struct tm *); //輸出時間。  

int main(void)  

void dsptime(const struct tm * ptm)  

;  cout << ptm->tm_year+1900 << "年" << ptm->tm_mon+1 << "月" << ptm->tm_mday << "日 " ;  

cout << ptm->tm_hour << ":" << ptm->tm_min << ":" << ptm->tm_sec <<" " ;  

cout << " 星期" tm_yday << "天 " << endl;  

}三、計算時間間隔

可以通過difftime來計算兩個時間的間隔,可以精確到秒,函式原型:

double difftime(time_t, time_t)

要想精確到毫秒,就要使用clock函式了,函式原型:

clock_t clock(void)

從定義可以看出clock返回乙個clock_t型別,這個型別也定義在time.h中,原型是:

typedef long clock_t

clock_t也是乙個長整型,表示的是從程式開始執行到執行clock函式時所經過的cpu時鐘計時單元數。

code:

#include

#include

using namespace std;  

int main(void)  

四、獲得當前精確時間(2023年1月1日到現在的時間)

gettimeofday是獲得當前精確時間(2023年1月1日到現在的時間),或者為執行計時,可以使用gettimeofday()函式。函式原型:

int gettimeofday(struct  timeval *tv, struct  timezone *tz )

gettimeofday()會把目前的時間用tv 結構體返回,當地時區的資訊則放到tz所指的結構中

函式執行成功後返回0,失敗後返回-1

(1)timeval結構體定義為:

struct  timeval

;(2)timezone 結構定義為:

struct  timezone

code:

#include

#include

#include

int main()

說明:在使用gettimeofday()函式時,第二個引數一般都為空,因為我們一般都只是為了獲得當前時間,而不用獲得timezone的數值

五、將時間結構轉換為對應的秒數:

mktime()函式原型:

time_t mktime(struct tm * timeptr);

作用是,將時間轉換為自2023年1月1日以來持續時間的秒數,發生錯誤時返回-1。

code:

#include

#include

main()

c語言時間函式

include 1.獲得日曆時間 實際上是長整型,從乙個時間點 一般是1970年1月1日0時0分0秒 到此時的秒數 time t的值由函式time 獲得 time t time time t timer eg time t t time null struct tm struct tm的值由函式lo...

C語言時間函式

在呼叫系統時間處理時間問題時,需要使用時間函式,使用前需要引入標頭檔案time.h。time t time time t t time函式會返回從公元1970年1月1日的utc時間從0時0分0秒算起到現在所經過的秒數。引數t是乙個指標,如果不是乙個空指標,函式也會將返回值存到t指標所指的記憶體單元中...

c語言整理時間的操作

time t表示時間型別資料,在標頭檔案time.h中定義,而計算機表示乙個日曆時間是從1970年1月1日0時0分0秒到現在的秒數 函式型別是 typedef long time t long型別 時間庫函式 time t time time t t 利用返回值,返回值是1970年1月1日0時0分0...