c語言怎麼計時的
⑴ c語言如何用time函數計時
事件開始時記錄下時間,事件結束時在記錄時間,兩者相減,就是事件消耗的時間。
⑵ 在C語言中如何實現精確計時
time()
頭文件:time.h
函數原型:time_t time(time_t * timer)
功能:返回以格林尼治時間(GMT)為標准,從1970年1月1日00:00:00到現在的此時此刻所經過的秒數。
2.clock()
頭文件:time.h
函數原型:clock_t clock(void);
功能:該函數返回值是硬體滴答數,要換算成秒,需要除以CLK_TCK或者 CLK_TCKCLOCKS_PER_SEC。比如,在VC++6.0下,這兩個量的值都是1000。
3. timeGetTime()
頭文件:Mmsystem.h 引用庫: Winmm.lib
函數原型:DWORD timeGetTime(VOID);
功能:返回系統時間,以毫秒為單位。系統時間是從系統啟動到調用函數時所經過的毫秒數。注意,這個值是32位的,會在0到2^32之間循環,約49.71天。
⑶ 請問怎麼用c語言怎麼寫一個最簡單計時器
#include<stdio.h>#include<windows.h>int main(){ int hour = 0, min = 0, sec = 0; while (1){ Sleep(1000);//暫停1s system("cls");//清屏 sec++; if (sec == 60){ min++; sec = 0; } if (min == 60){ hour++; min = 0; } if (hour == 24){ hour = 0; } printf("%02d:%02d:%02d\n", hour, min, sec); //%02d輸出長度為2,不足2前面補0 } return 0;}
運行截圖
⑷ C語言編程計時器如何工作
C語言編程計時器,參考思路如下:
每隔30秒(自己定)操作文件file:
1、file文件里只存一個數(初值為0);
2、每隔30秒打開文件,讀出數字;
3、數字加上30秒;
4、再寫進去;
在"Dos.h"中有void sleep(unsigned seconds)函數;
Sample:
#include "Dos.h"
#include "stdio.h"
void main(){
while(1){
sleep(yourTime);
doSomething(...);
}
}
⑸ C語言中有沒有用於計時的函數怎麼用
CLOCK()函數:
clock()是C/C++中的計時函數,而與其相關的數據類型是clock_t。在MSDN中,查得對clock函數定義如下:
clock_t clock(void) ;
這個函數返回從「開啟這個程序進程」到「程序中調用clock()函數」時之間的CPU時鍾計時單元(clock tick)數,在MSDN中稱之為掛鍾時間(wal-clock);若掛鍾時間不可取,則返回-1。其中clock_t是用來保存時間的數據類型,在time.h文件中,我們可以找到對它的定義:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
很明顯,clock_t是一個長整形數。在time.h文件中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鍾會有多少個時鍾計時單元,其定義如下:
#define CLOCKS_PER_SEC ((clock_t)1000)
可以看到每過千分之一秒(1毫秒),調用clock()函數返回的值就加1。下面舉個例子,你可以使用公式clock()/CLOCKS_PER_SEC來計算一個進程自身的運行時間:
void elapsed_time()
{
printf("Elapsed time:%u secs.\n",clock()/CLOCKS_PER_SEC);
}
當然,你也可以用clock函數來計算你的機器運行一個循環或者處理其它事件到底花了多少時間:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
long i = 10000000L;
clock_t start, finish;
double ration;
/* 測量一個事件持續的時間*/
printf( "Time to do %ld empty loops is ", i) ;
start = clock();
while( i-- );
finish = clock();
ration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds\n", ration );
system("pause");
}
在筆者的機器上,運行結果如下:
Time to do 10000000 empty loops is 0.03000 seconds
上面我們看到時鍾計時單元的長度為1毫秒,那麼計時的精度也為1毫秒,那麼我們可不可以通過改變CLOCKS_PER_SEC的定義,通過把它定義的大一些,從而使計時精度更高呢?通過嘗試,你會發現這樣是不行的。在標准C/C++中,最小的計時單位是一毫秒。
time_t time( time_t *timer );
返回值是1970年到現在的秒數 用long型接就可以了
參數也是同樣意義
如
long time_s = 0;
time_s = time( NULL );
// time_s就是1970年到現在的秒數
或者
long * time_s = NULL;
time(time_s);
// *time_s就是1970年到現在的秒數
要計算前後一段時間的話之前取一次time,之後取一次相減就知道用了多少秒了
⑹ C語言程序運行計時
可以使用time.h裡面的clock函數
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
long i = 10000000L;
clock_t start, finish;
double ration; /* 測量一個事件持續的時間*/
printf( "Time to do %ld empty loops is ", i) ;
start = clock();
while(i--);
finish = clock();
ration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds\n", ration );
system("pause");
return 0;
}
⑺ 如何在C語言中實現計時
以前做那個停車場管理系統的時候, 也是需要計時,因為要收費.. 好像就這么記得. 每個上機的人,應該有一個結構體,在結構體里設個計時的變數,可以是個只有兩個元素的數組.當然這樣會很不方便了.(因為需要你自己輸入上機時間,和下機時間,並保存在變數里.)
.... ANSIC里有一個time函數,在time.h頭文件里. 這個函數,傳遞一個參數,返回的是系統時間(單位我不清楚),返回的系統時間保存在你傳遞的參數里... 你可以試試這個. 貌似這個可能就有點麻煩了. 因為需要測試程序... 你不可能等個1,2個小時,再看看輸出結果是不是對的...測試的時候,乘個數放大一下應該就可以了..
也就是說,你設一個結構體,裡面有一個記錄時間的數組time[2],數組只含兩個元素, 這兩個元素的值,由time函數來獲得.(這里獲得的是系統時間).
.這個結構體里應該還含有的其他元素,應該要包括,電腦標號ID(每個電腦對應一個號碼),和一個bool型變數status,來標識是該電腦的狀態,已有人上機或者處於空閑狀態.
status為true(有人使用該機器)時,把系統時間付給time[0],
該機器的status變為false(有人下機)後,在把一個系統時間付給time[1].計算時間差和收費額.
.. 那些一個小時,半個小時,等等,不同時間的不同收費標准,一般用if,什麼的來搞定.
⑻ c語言倒計時怎麼編
定位要倒計時的坐標!然後再需要倒計時的地方添加gotoxy(所定位的坐標),當然這只是十以下的倒計時,超過了十則會清除不了十位數上的數字,要解決這個辦法就是輸出%2d
⑼ 怎麼用c語言編寫一個計時器!!!
調用win的api函數ExitWindowsEx();
#include <stdio.h>
#include <time.h>
main()
{
clock_t start,end;
int n;
printf("How many seconds do you want to count? ");
scanf("%d",&n);
getchar();
clrscr();
start=end=clock();
while((n-(int)(end-start)/19)>=0&!kbhit())
{
printf("the time is: %d",n-(int)(end-start)/19);
sleep(1);
end=clock();
clrscr();
}
ExitWindowsEx();
}
循環結束就可以了。
網上幫你找了下。
頭文件: 在Winuser.h中定義;需要包含 Windows.h.
靜態庫: User32.lib.
【以上轉貼】
【以下原創】
#include "ctime" //不要直接編,可能過不了,為C++,只是告知你大概方法
using namespace std;
//我寫的一個類,調用API函數:
// gameTime類,用於時間控制
class gameTime
{
public:
gameTime();
~gameTime();
public:
DWORD tNow; //當前時間
DWORD tPre; //開始時間
private:
bool key; //運行控制
public:
bool getKey() { return key; }
void setKey( bool temp ) { key = temp; }
DWORD getTimeDelay(){ return (tNow - tPre);}
};
/**-----------------------------------------------------------------------------
* gameTime類實現段
*------------------------------------------------------------------------------
*/
gameTime::gameTime():tNow(0),tPre(0),key(false)
{
}
gameTime::~gameTime()
{
}
//原理是開始計時時:
tPre = GetTickCount();
///....執行。
gameStartTime.tNow = GetTickCount();
if(gameStartTime.getTimeDelay()>= 72000)
............
//在72S內做什麼什麼。。。
這個是控制時間間隔的。
⑽ c語言中怎麼設置計時器
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
clock_t start = clock();
//do some process here
clock_t end = (clock() - start)/CLOCKS_PER_SEC;
cout<<"time comsumption is "<<end<<endl;
}
(10)c語言怎麼計時的擴展閱讀
使用linux的系統設置計時器
#include <sys/time.h>
int main()
{
timeval starttime,endtime;
gettimeofday(&starttime,0);
//do some process here
gettimeofday(&endtime,0);
double timeuse = 1000000*(endtime.tv_sec - starttime.tv_sec) + endtime.tv_usec - startime.tv_usec;
timeuse /=1000;//除以1000則進行毫秒計時,如果除以1000000則進行秒級別計時,如果除以1則進行微妙級別計時
}
timeval的結構如下:
strut timeval
{
long tv_sec; /* 秒數 */
long tv_usec; /* 微秒數 */
};