Timer()函數(shù)

創(chuàng)新互聯(lián)專注于彭水苗族土家族企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城開發(fā)。彭水苗族土家族網(wǎng)站建設(shè)公司,為彭水苗族土家族等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
語(yǔ)法:Timer ( interval {, windowname } )
參數(shù):指定兩次觸發(fā)Timer事件之間的時(shí)間間隔,有效值在0到65之間。如果該參數(shù)的值指定為0,那么關(guān)閉定時(shí)器,不再觸發(fā)指定窗口的Timer事件。windowname:窗口名,指定時(shí)間間隔到時(shí)要觸發(fā)哪個(gè)窗口的Timer事件。省略該參數(shù)時(shí),觸發(fā)當(dāng)前窗口的Timer事件返回值Integer。函數(shù)執(zhí)行成功時(shí)返回1,發(fā)生錯(cuò)誤時(shí)返回-1。如果任何參數(shù)的值為NULL,Timer()函數(shù)返回NULL。用法使用Timer()函數(shù)可以周期性地觸發(fā)指定窗口的Timer事件,這樣,每當(dāng)時(shí)間間隔過(guò)去時(shí),應(yīng)用程序都可以完成一些周期性的工作,比如繪制簡(jiǎn)單動(dòng)畫等。將Timer()的interval參數(shù)設(shè)置為非0值時(shí)啟動(dòng)定時(shí)器并開始計(jì)時(shí);將該函數(shù)的interval參數(shù)設(shè)置為0時(shí)關(guān)閉定時(shí)器,終止計(jì)時(shí)任務(wù)。需要注意的是,在Microsoft Windows系統(tǒng)中,該函數(shù)能夠計(jì)時(shí)的最小時(shí)間間隔為0.055秒(約1/18秒),如果把interval參數(shù)的值設(shè)置小于0.055,那么該定時(shí)器將每隔0.055秒觸發(fā)一次窗口的Timer事件。Microsoft Windows 3.x最多只支持系統(tǒng)中同時(shí)啟動(dòng)16個(gè)定時(shí)器。
用法:
啟動(dòng)定時(shí)器。
啟動(dòng)定時(shí)器就需要使用CWnd類的成員函數(shù)SetTimer。CWnd::SetTimer的原型如下:
UINT_PTR SetTimer(
UINT_PTR nIDEvent,
UINT nElapse,
void (CALLBACK* lpfnTimer)(
HWND,
UINT,
UINT_PTR,
DWORD
)
);
參數(shù)nIDEvent指定一個(gè)非零的定時(shí)器ID;參數(shù)nElapse指定間隔時(shí)間,單位為毫秒;參數(shù)lpfnTimer指定一個(gè)回調(diào)函數(shù)的地址,如果該參數(shù)為NULL,則WM_TIMER消息被發(fā)送到應(yīng)用程序的消息隊(duì)列,并被CWnd對(duì)象處理。如果此函數(shù)成功則返回一個(gè)新的定時(shí)器的ID,我們可以使用此ID通過(guò)KillTimer成員函數(shù)來(lái)銷毀該定時(shí)器,如果函數(shù)失敗則返回0。
通過(guò)SetTimer成員函數(shù)我們可以看出,處理定時(shí)事件可以有兩種方式,一種是通過(guò)WM_TIMER消息的消息響應(yīng)函數(shù),一種是通過(guò)回調(diào)函數(shù)。
如果要啟動(dòng)多個(gè)定時(shí)器就多次調(diào)用SetTimer成員函數(shù)。另外,在不同的CWnd中可以有ID相同的定時(shí)器,并不沖突。
time函數(shù)
返回某一特定時(shí)間的小數(shù)值。如果在輸入函數(shù)前,單元格的格式為“常規(guī)”,則結(jié)果將設(shè)為日期格式。
函數(shù) TIME 返回的小數(shù)值為 0(零)到 0.99999999 之間的數(shù)值,代表從 0:00:00 (12:00:00 AM) 到 23:59:59 (11:59:59 P.M.) 之間的時(shí)間。
語(yǔ)法:
TIME(hour, minute, second)
TIME 函數(shù)語(yǔ)法具有以下參數(shù):
Hour 必需。0(零)到 32767 之間的數(shù)值,代表小時(shí)。任何大于 23 的數(shù)值將除以 24,其余數(shù)將視為小時(shí)。例如,TIME(27,0,0) = TIME(3,0,0) = .125 或 3:00 AM。
Minute 必需。0 到 32767 之間的數(shù)值,代表分鐘。任何大于 59 的數(shù)值將被轉(zhuǎn)換為小時(shí)和分鐘。例如,TIME(0,750,0) = TIME(12,30,0) = .520833 或 12:30 PM。
Second 必需。0 到 32767 之間的數(shù)值,代表秒。任何大于 59 的數(shù)值將被轉(zhuǎn)換為小時(shí)、分鐘和秒。例如,TIME(0,0,2000) = TIME(0,33,22) = .023148 或 12:33:20 AM。
例子:
?php$t=time();echo($t . "br /");echo(date("D F d Y",$t));?
輸出:
1138618081Mon January 30 2006
c語(yǔ)言時(shí)間函數(shù):
1、獲得日歷時(shí)間函數(shù):
可以通過(guò)time()函數(shù)來(lái)獲得日歷時(shí)間(Calendar Time),其原型為:time_t time(time_t * timer);
如果已經(jīng)聲明了參數(shù)timer,可以從參數(shù)timer返回現(xiàn)在的日歷時(shí)間,同時(shí)也可以通過(guò)返回值返回現(xiàn)在的日歷時(shí)間,即從一個(gè)時(shí)間點(diǎn)(例如:1970年1月1日0時(shí)0分0秒)到現(xiàn)在此時(shí)的秒數(shù)。如果參數(shù)為空(NUL),函數(shù)將只通過(guò)返回值返回現(xiàn)在的日歷時(shí)間,比如下面這個(gè)例子用來(lái)顯示當(dāng)前的日歷時(shí)間:
2、獲得日期和時(shí)間函數(shù):
這里說(shuō)的日期和時(shí)間就是平時(shí)所說(shuō)的年、月、日、時(shí)、分、秒等信息。從第2節(jié)我們已經(jīng)知道這些信息都保存在一個(gè)名為tm的結(jié)構(gòu)體中,那么如何將一個(gè)日歷時(shí)間保存為一個(gè)tm結(jié)構(gòu)的對(duì)象呢?
其中可以使用的函數(shù)是gmtime()和localtime(),這兩個(gè)函數(shù)的原型為:
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
其中g(shù)mtime()函數(shù)是將日歷時(shí)間轉(zhuǎn)化為世界標(biāo)準(zhǔn)時(shí)間(即格林尼治時(shí)間),并返回一個(gè)tm結(jié)構(gòu)體來(lái)保存這個(gè)時(shí)間,而localtime()函數(shù)是將日歷時(shí)間轉(zhuǎn)化為本地時(shí)間。比如現(xiàn)在用gmtime()函數(shù)獲得的世界標(biāo)準(zhǔn)時(shí)間是2005年7月30日7點(diǎn)18分20秒,那么用localtime()函數(shù)在中國(guó)地區(qū)獲得的本地時(shí)間會(huì)比世界標(biāo)準(zhǔn)時(shí)間晚8個(gè)小時(shí),即2005年7月30日15點(diǎn)18分20秒。
clock()是C/C++中的計(jì)時(shí)函數(shù),而與其相關(guān)的數(shù)據(jù)類型是clock_t。
它的具體功能是返回處理器調(diào)用某個(gè)進(jìn)程或函數(shù)所花費(fèi)的時(shí)間。函數(shù)返回從“開啟這個(gè)程序進(jìn)程”到“程序中調(diào)用clock()函數(shù)”時(shí)之間的CPU時(shí)鐘計(jì)時(shí)單元(clock tick)數(shù),其中clock_t是用來(lái)保存時(shí)間的數(shù)據(jù)類型。
在time.h文件中,我們可以找到對(duì)它的定義:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
clock_t其實(shí)就是long,即長(zhǎng)整形。該函數(shù)返回值是硬件滴答數(shù),要換算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC。比如,在VC++6.0下,這兩個(gè)量的值都是1000,這表示硬件滴答1000下是1秒,因此要計(jì)算一個(gè)進(jìn)程的時(shí)間,用clock()除以1000即可。
clock的返回值一直是0的原因:
1、編譯器優(yōu)化,for循環(huán)實(shí)際根本沒(méi)執(zhí)行,直接跳過(guò)去了,所以時(shí)間為0。
2、clock計(jì)算的是程序占用cpu的時(shí)間,如果你的程序執(zhí)行的動(dòng)作很少,那么clock算出的時(shí)間也很少。
3、建議使用time gettimeofday函數(shù)來(lái)計(jì)時(shí)。
擴(kuò)展資料:
C語(yǔ)言中clock()函數(shù)的程序例1:(TC下運(yùn)行通過(guò))
#include?stdio.h
#include?time.h
int?main(void)
{
clock_t?start,?end;
start?=?clock();
delay(2000);
end?=?clock();
printf("The?time?was:?%f\n",?(double)(end?-?start)?/?CLK_TCK);
return?0;
}
說(shuō)明:CLK_TCK?定義在TC中的time.h中:#define?CLK_TCK18.2。
在VC6.0中也有關(guān)于CLK_TCK的宏定義,不過(guò)其值不再是18.2,而是1000。
實(shí)際上在VC6.0中CLK_TCK已完全等同CLOCKS_PER_SEC。
參考資料來(lái)源:百度百科-clock()
1 是把一個(gè)正整數(shù)放進(jìn)t所在的地址里,這個(gè)正整數(shù)是1970年1月1日00:00:00(UTC)開始,到目前為止經(jīng)過(guò)的秒數(shù)。
2 因?yàn)閠ime以兩種方式返回結(jié)果。一種是你第一道題的,給他一個(gè)地址,他把結(jié)果寫進(jìn)那個(gè)地址。第二種直接返回一個(gè)time_t。你可以用這種方法接:time_t t = time(NULL)。這里給他一個(gè)空指針就是告訴他不需要以第一種方法返回結(jié)果,所以當(dāng)然他也不會(huì)把結(jié)果寫進(jìn)空指針,他只是不管這個(gè)參數(shù)而已。當(dāng)然只要你樂(lè)意你也可以兩種一起用。
網(wǎng)站欄目:c語(yǔ)言分鐘函數(shù) c語(yǔ)言中計(jì)時(shí)函數(shù)
鏈接地址:http://chinadenli.net/article44/hejhee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、標(biāo)簽優(yōu)化、服務(wù)器托管、全網(wǎng)營(yíng)銷推廣、移動(dòng)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)