C C 中時間的型別以及操作方法技巧

2021-07-09 06:39:04 字數 2961 閱讀 3904

一、獲取系統時間和當地時間

系統時間是指:格林尼治utc時間

當地時間是指:在中國境內為北京時間(所在時區的時間)

#include 

int main(int argc,char *argv)

getlocaltime是函式timelocaltime的合體

函式說明:此函式會返回從公元 1900 年0 月1 日的本地 時間從0 時0 分0 秒算起到現在所經過的秒數。

time:

標頭檔案:#include < time.h>

定義函式:time_t time(time_t *t);

函式說明:此函式會返回從公元 1970 年1 月1 日的utc 時間從0 時0 分0 秒算起到現在所經過的秒數。如果t 並非空指標的話,此函式也會將返回值存到t 指標所指的記憶體。

localtime:將time返回的時間資料轉換為本地時間

通常獲取時間的用法:

#include

int main(int argc,char * argv)

二、使用gettickcount,獲取程式執行時間 ,可以獲取ms級時間 

long t1=gettickcount();//程式段開始前取得系統執行時間(ms)   

sleep(500); long t2=gettickcount();//程式段結束後取得系統執行時間(ms)   

str.format("time:%dms",t2-t1);//前後之差即 程式執行時間   

afxmessagebox(str);//獲取系統執行時間   

long t=gettickcount();   

cstring str,str1;   

str1.format("系統已執行 %d時",t/3600000);   

str=str1; t%=3600000;   

str1.format("%d分",t/60000);   

str+=str1; t%=60000;   

str1.format("%d秒",t/1000);   

str+=str1;

afxmessagebox(str);

三、mfc中使用ctime類獲取時間(精度為秒)

cstring str;    

ctime tm;

tm=ctime::getcurrenttime();//獲取系統時間 

str=tm.format("現在時間是%y年%m月%d日 %x");

messagebox(str,null,mb_ok);

//或者

time time = ctime::getcurrenttime(); //獲取系統日期

int d=time.getday();獲得幾號

int y=time.getyear(); //獲取年份

int m=time.getmonth(); //獲取當前月份

int h=time.gethour(); //獲取當前為幾時

int mm=time.getminute(); //獲取分鐘

int s=time.getsecond(); //獲取秒

int w=time.getdayofweek(); //獲取星期幾,注意1為星期天,7為星期六

四、獲取時間差(精度為秒)

//如果想計算兩段時間的差值,可以使用ctimespan類,具體使用方法如下:

ctime t1( 1999, 3, 19, 22, 15, 0 );//

ctime t = ctime::getcurrenttime();//

ctimespan span=t-t1; //計算當前系統時間與時間t1的間隔

int iday=span.getdays(); //獲取這段時間間隔共有多少天

int ihour=span.gettotalhours(); //獲取總共有多少小時

int imin=span.gettotalminutes();//獲取總共有多少分鐘

int isec=span.gettotalseconds();//獲取總共有多少秒

五、高精度時間的獲取(精度為10us)

關於高精度時間的獲取,可以參考一下這個鏈結(vc時間控制函式)

執行秒級的時間獲取用getsystemtime就行;

執行毫秒級的時間獲取用gettickcount就行;

執行微秒級的時間獲取就必須用queryperformancefrequencyqueryperformancecounter

//#include 標頭檔案

large_integer litmp;

longlong qpart_start,qpart_end;

double dfminus, dffreq, dftim;//時間計數間隔,cpu頻率,時間差(單位為秒)

queryperformancefrequency(&litmp);

dffreq = (double)litmp.quadpart;// 獲得計數器的時鐘頻率

queryperformancecounter(&litmp);

qpart_start= litmp.quadpart;// 獲得初始值,即起始時間

dowhile(dftim<0.000001);//定時時間為1us

封裝高精度時間類(c++記錄精確時間-queryperformancefrequency())

Java中常用的時間操作方法

param 要轉換的毫秒數 return 該毫秒數轉換為 days hours minutes seconds 後的格式 author fy.zhang public static string formatduring long mss param begin 時間段的開始 param end 時...

C 中引用的操作方法

在函式中定義的變數都是區域性變數,所以返回函式中的結果只能通過return或者指標。那在函式中有沒有辦法不用指標也可以達到修改引數的目的呢?例如 錯誤案例 三個字串比較大小,swap函式用來比較大小 include includevoid swap char p1,char p2 int main ...

mysql中DDL的操作方法

mysql中ddl的操作方法 mysql中的dml操作 點了五根煙,終於把mysql中查詢操作 dql 搞懂了!mysql中資料完整性徹底解析 mysql多表查詢一遍打通 mysql中子查詢看不明白?那就得好好練 一些我們在mysql中常用的函式 讓我們來聊聊mysql中的許可權操作 mysql中關...