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