VC中進行時間比較

2021-05-25 00:04:39 字數 1735 閱讀 8393

ctime 類只能用來獲取時間,不能用來進行時間比較,否則會產生負值

例如:cwnd::ontimer(nid)

}以上這段**在經過一分鐘後(或 start.getminute() != now.getminute()時),now.getsecond() - start.getsecond() 的結果是乙個負值

如果要進行時間間隔的比較,可以用ctimespan類,如下

獲得當前日期和時間

ctime tm=ctime::getcurrenttime();

cstring str=tm.format("%y-%m-%d");

在vc中,我們可以借助ctime時間類,獲取系統當前日期,具體使用方法如下:

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

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

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

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

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

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

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

int w=t.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();//獲取總共有多少秒

設定計時器

定義timer id

#define timerid_jisuanfangshi 2

在適當的地方設定時鐘,需要開始其作用的地方;

settimer(timerid_jisuanfangshi,200,null);

在不需要的時候銷毀掉時鐘

killtimer(timerid_jisuanfangshi);

訊息對映

void cjisuan::ontimer(uint nidevent)

{}

vc的時間有好多種,僅列出幾種:

time函式得到的是1970開始計算的秒是,可以直接按無符號整數比較。

gettickcount和timegettime得到的是系統啟動後的毫秒數,可以直接按無符號整數比較。

ctime和coledatetime是mfc的時間類,都有= < > 等操作符過載,可以比較。

不知道你用的是哪種時間。

怎麼給乙個ctime變數賦值
ctime   t(   2000,   3,   19,   18,   0,   0   );   

cstring   s   =   t.format(   "%h:%m:%s "   );

賦初值後,不影響你對年月日的修改。你對乙個變數賦初值就不能改它了麼?又不是用const。

linux中進行時間同步

在搭建分布式平台的時候,由於機器長時間執行,主從節點之間的時間會有誤差,這樣集群便會出現問題,所以就需要在搭建的集群之前將準備工作做好,這其中就包括配置linux中的時間同步。本次採用的是contest 6.5環境。部署在vmware虛擬機器上。多台虛擬機器進行時間同步的時候需要在hosts檔案中配...

幾種排序演算法執行時間比較

最近無聊,把各種排序演算法在linux下用c實現了,並記錄其執行時間如下 對10m個無符號隨機整數進行排序,各種演算法的時間如下 qsort c標準庫自帶函式 real 0m5.901s user 0m5.548s sys 0m0.300s merge sort real 0m5.757s user...

mysql時間比較

時間比較 當前時間是否在某個時間段之內 是否在create time 5天之內 select from message detail where unix timestamp now between unix timestamp create time and unix timestamp crea...