新聞中心
C語(yǔ)言 timer函數(shù) 和time函數(shù)
Timer()函數(shù)

創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)提供從項(xiàng)目策劃、軟件開發(fā),軟件安全維護(hù)、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評(píng)估等整套的建站服務(wù),主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、成都做網(wǎng)站,成都app軟件開發(fā)以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。創(chuàng)新互聯(lián)公司深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
語(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í)間間隔過去時(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通過KillTimer成員函數(shù)來銷毀該定時(shí)器,如果函數(shù)失敗則返回0。
通過SetTimer成員函數(shù)我們可以看出,處理定時(shí)事件可以有兩種方式,一種是通過WM_TIMER消息的消息響應(yīng)函數(shù),一種是通過回調(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ǔ)言中有沒有用于計(jì)時(shí)的函數(shù)?怎么用?
有,CLOCK函數(shù)。
clock()是C/C++中的計(jì)時(shí)函數(shù),而與其相關(guān)的數(shù)據(jù)類型是clock_t。在MSDN中,查得對(duì)clock函數(shù)定義如下:clock_t clock(void) ; #ifndef _CLOCK_T_DEFINED ?typedef long clock_t;
#define _CLOCK_T_DEFINED ? ? ??#endif。
可以看到每過千分之一秒(1毫秒),調(diào)用clock函數(shù)返回的值就加1。
C語(yǔ)言是一門通用計(jì)算機(jī)編程語(yǔ)言,應(yīng)用廣泛。C語(yǔ)言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語(yǔ)言。
盡管C語(yǔ)言提供了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語(yǔ)言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器以及超級(jí)電腦等作業(yè)平臺(tái)。
1967年,劍橋大學(xué)的Martin Richards對(duì)CPL語(yǔ)言進(jìn)行了簡(jiǎn)化,于是產(chǎn)生了BCPL語(yǔ)言。
c語(yǔ)言 時(shí)間函數(shù)
c語(yǔ)言時(shí)間函數(shù):
1、獲得日歷時(shí)間函數(shù):
可以通過time()函數(shù)來獲得日歷時(shí)間(Calendar Time),其原型為:time_t time(time_t * timer);
如果已經(jīng)聲明了參數(shù)timer,可以從參數(shù)timer返回現(xiàn)在的日歷時(shí)間,同時(shí)也可以通過返回值返回現(xiàn)在的日歷時(shí)間,即從一個(gè)時(shí)間點(diǎn)(例如:1970年1月1日0時(shí)0分0秒)到現(xiàn)在此時(shí)的秒數(shù)。如果參數(shù)為空(NUL),函數(shù)將只通過返回值返回現(xiàn)在的日歷時(shí)間,比如下面這個(gè)例子用來顯示當(dāng)前的日歷時(shí)間:
2、獲得日期和時(shí)間函數(shù):
這里說的日期和時(shí)間就是平時(shí)所說的年、月、日、時(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)體來保存這個(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秒。
c語(yǔ)言計(jì)時(shí)函數(shù)
在開始時(shí)用time()函數(shù)取一次時(shí)間,在結(jié)束時(shí)(輸入與生成相同時(shí))再用time()取一次時(shí)間,之后求出再次時(shí)間之差即可。
*************************************************
#include
//for
printf()
#include
//for
system()
#include
//for
time()
time_t
void
main()
{
time_t
ts,te;
system("pause");
ts=time(null);
system("pause");
te=time(null);
printf("%ld\n",te-ts);
system("pause");
}
/////////////////////////////////////////////
輸出兩次按鍵之間的時(shí)間(秒)
標(biāo)題名稱:c語(yǔ)言定時(shí)時(shí)間函數(shù) c++定時(shí)函數(shù)
瀏覽路徑:http://www.dlmjj.cn/article/hhgopi.html


咨詢
建站咨詢
