c語言關於時間轉換的函式在標頭檔案和
中,其中
中包含了各種操作時間和日期的函式,
中包換結構體timeb,可以用來獲取ms級別的時間
可利用
標頭檔案中的兩個結構體獲取ms級的執行時間, 統計程式的時間複雜度
struct timeb
;
#include
#include
using
namespace std;
intmain()
// 利用c++11的chrono庫求時間間隔
long
fibonacci
(unsigned n)
#include
intmain()
適合儲存處理器時間的型別clock_t
typedef
long clock_t;
適合儲存日曆時間型別time_t
// 32位表現為long 64位中表現為long long
#ifdef _use_32bit_time_t
typedef __time32_t time_t;
#else
typedef __time64_t time_t;
#endif
time_t time
(time_t *t)
// 實質時表示乙個總秒數
// 傳入引數一般為null 得到的結果為格林威治時間2023年01月01日00時00分00秒(北京時間2023年01月01日08時00分00秒)起至現在的總秒數
用來儲存時間和日期的結構stutic tm
struct tm
;
呼叫time()
函式會得到kernel時間time()
返回值為時間總秒數(前面提到了)
time_t tnowutc =
time
(null
);
time_t型別的時間轉換為struct tm結構體,得到時間的詳細資訊
struct tm *
gmtime
(const time_t *timep)
;// 得到utc+0時區詳細資訊
struct tm *
localtime
(const time_t *timep)
;// 得到本地時區時間詳細資訊
struct tm結構體轉換為time_t型別
time_t mktime
(struct tm *tm);;
// linux和window都有 本地時間轉換位utc時間
static time_t _mkgmtime
(struct tm*
const _tm)
;// windows下 utc時間轉time_t時間型別的utc時間
static time_t mkgmtime
(struct tm*
const _tm)
;// linux下 utc時間轉time_t時間型別的utc時間
//當然 在linux下可以使用下面函式 效果相同 但不常用
time_t timelocal
(struct tm *tm)
;time_t timegm
(struct tm *tm)
;
struct tm結構體轉換為string
char
*asctime
(const
struct tm *tm)
;
struct tm 格式化成string(可按照自定義格式格式化) 具體格式化標準可檢視strftime函式說明
size_t strftime (
char
* ptr, size_t maxsize,
const
char
* format,
const
struct tm* timeptr )
;
time_t型別轉string(固定格式)
char
*ctime
(const time_t *timep)
;
例子
本地時間轉換為utc時間戳
time_t ctimer::
getutctime
(int ndate,
int ntime)
;#ifdef win32
// windows
return
_mkgmtime
(&tmouter)
;#else
// linux
return
timegm
(&tmouter)
;#endif
// win32
}
將上面**格式化為字串輸出
string ctimer::
getutctimestr
(int ndate,
int ntime)
;strftime
(buf,
sizeof
(buf)
,"%y-%m-%d %x"
,gmtime
(&tutc));
return
string
(buf)
;}
得到本地日期和時間
int ctimer::
getlocaldateint()
int ctimer::
getlocaltimeint()
C語言中的型別轉換
計算機進行算術運算時,通常要求運算元具有相同的位數 相同的儲存方式。而c語言支援在表示式中混合使用基本資料型別,因此需要在不同的資料型別之間進行轉換。在c語言中存在兩種型別的轉換,一種是隱式轉換,由編譯器自動處理轉換而無需程式開發人員介入,另一種是強制型別轉換 顯式轉換 需要程式開發人員使用強制轉換...
C語言中的型別轉換!
自動轉換發生在不同資料型別運算時,在編譯的時候自動完成 自動轉換遵循的規則就好比小盒子可以放進大盒子裡面一樣,下圖表示了型別自動轉換的規則。縮寫 ascii 英文全稱 american standard code for information interchange 美國資訊交換標準 是一種用於資...
C語言中的型別轉換
c語言中的型別轉換可以分為兩種 隱式轉換中的規則有 窄的向寬的轉變 unsigned 同型別無符號比有符號寬 同型別的轉換例如 int a 10 unsigned int b 10 if a b printf a b else printf a不同型別的轉換例如 int c 10 unsigned ...