Ⅰ 用c語言編程,將輸入的秒數轉換 t 為幾小時幾分幾秒
intt=3625;
inth;
intm;
ints;
s=t%60;
t/=60;
m=t%60;
t/=60;
h=t;
printf("time:%d:%d:%d ",h,m,s);
Ⅱ C語言編程中的延時
您好 這個延時函數很不穩定的,沒有固定的時間
如果您使用tc 您可以用sleep(微秒)來延時
使用vc的話有5種常用方式:
方式一:VC中的WM_TIMER消息映射能進行簡單的時間控制。首先調用函數SetTimer()設置定時間隔,如SetTimer(0,200,NULL)即為設置200ms的時間間隔。然後在應用程序中增加定時響應函數 OnTimer(),並在該函數中添加響應的處理語句,用來完成到達定時時間的操作。這種定時方法非常簡單,可以實現一定的定時功能,但其定時功能如同Sleep()函數的延時功能一樣,精度非常低,最小計時精度僅為30ms,CPU佔用低,且定時器消息在多任務操作系統中的優先順序很低,不能得到及時響應,往往不能滿足實時控制環境下的應用。只可以用來實現諸如點陣圖的動態顯示等對定時精度要求不高的情況。如示例工程中的Timer1。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式二:VC中使用sleep()函數實現延時,它的單位是ms,如延時2秒,用sleep(2000)。精度非常低,最小計時精度僅為30ms,用sleep函數的不利處在於延時期間不能處理其他的消息,如果時間太長,就好象死機一樣,CPU佔用率非常高,只能用於要求不高的延時程序中。如示例工程中的Timer2。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式三:利用COleDateTime類和COleDateTimeSpan類結合WINDOWS的消息處理過程來實現秒級延時。如示例工程中的Timer3和Timer3_1。以下是實現2秒的延時代碼:
COleDateTime start_time = COleDateTime::GetCurrentTime();
COleDateTimeSpan end_time= COleDateTime::GetCurrentTime()-start_time;
while(end_time.GetTotalSeconds()< end_time =" COleDateTime::GetCurrentTime()-start_time;">
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式四:在精度要求較高的情況下,VC中可以利用GetTickCount()函數,該函數的返回值是 DWORD型,表示以ms為單位的計算機啟動後經歷的時間間隔。精度比WM_TIMER消息映射高,在較短的定時中其計時誤差為15ms,在較長的定時中其計時誤差較低,如果定時時間太長,就好象死機一樣,CPU佔用率非常高,只能用於要求不高的延時程序中。如示例工程中的Timer4和Timer4_1。下列代碼可以實現50ms的精確定時:
DWORD dwStart = GetTickCount();
DWORD dwEnd = dwStart;
do
{
dwEnd = GetTickCount()-dwStart;
}while(dwEnd <50);
為使GetTickCount()函數在延時或定時期間能處理其他的消息,可以把代碼改為:
DWORD dwStart = GetTickCount();
DWORD dwEnd = dwStart;
do
{
MSG msg;
GetMessage(&msg,NULL,0,0);
TranslateMessage(&msg);
DispatchMessage(&msg);
dwEnd = GetTickCount()-dwStart;
}while(dwEnd <50);
雖然這樣可以降低CPU的佔有率,並在延時或定時期間也能處理其他的消息,但降低了延時或定時精度。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式五:與 GetTickCount()函數類似的多媒體定時器函數DWORD timeGetTime(void),該函數定時精度為ms級,返回從Windows啟動開始經過的毫秒數。微軟公司在其多媒體Windows中提供了精確定時器的底層API持,利用多媒體定時器可以很精確地讀出系統的當前時間,並且能在非常精確的時間間隔內完成一個事件、函數或過程的調用。不同之處在於調用DWORD timeGetTime(void) 函數之前必須將 Winmm.lib 和 Mmsystem.h 添加到工程中,否則在編譯時提示DWORD timeGetTime(void)函數未定義。由於使用該函數是通過查詢的方式進行定時控制的,所以,應該建立定時循環來進行定時事件的控制。如示例工程中的Timer5和Timer5_1。
Ⅲ C語言延時程序編程
在單片機中,要延時程序盡量准確,可以:
-延時循環盡量簡單,盡量少開變數比如:
Delay(unsigned int uDelay) { while ( uDelay-- ); }
-在主程序中用一個GPIO測試,如:
SetGPIOHigh(); Delay(1000); SetGPIOLOW();
-用示波器測量該GPIO波形及頻率
-調整Delay函數的調用值,可以用變數,在調試時實時修改變數值,找到延時1毫秒的值,把Delay函數改名為Delay1ms,之後調用這個函數完成精確延時
-其他的延時函數也可以類似上述方法完成,但記住在調試和實際使用時要用同樣的CPU主頻。
-最精確的還是用定時器中斷程序計時
Ⅳ time_t類型是什麼意思c語言里有這個嗎、不懂,求解
在C語言里time_t是longint是一種整數類型,可以定義宏;
typetime_olong;可以直接用long型定義數據,然後調用time(),或其他的時間函數;
例如:
time_tlt;
lt=time(NULL);//獲取系統當前時間。
(4)c語言編程tle是多少秒擴展閱讀
time_t的使用
例:
doubledifftime(time_ttime1,time_ttime0);
time_tmktime(structtm*timeptr);
time_ttime(time_t*timer);
char*asctime(conststructtm*timeptr);
char*ctime(consttime_t*timer);
Ⅳ c語言編程,怎麼計算時間
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
unsigned char time1[] = {10, 8, 31, 9, 26 };
unsigned char time2[] = { 10, 8, 31, 9, 50 };
struct tm t1 = {0};
struct tm t2 = {0};
time_t _t1;
time_t _t2;
double diff;
t1.tm_year = time1[0] + 100;
t1.tm_mon = time1[1];
t1.tm_mday = time1[2];
t1.tm_hour = time1[3];
t1.tm_min = time1[4];
t2.tm_year = time2[0] + 100;
t2.tm_mon = time2[1];
t2.tm_mday = time2[2];
t2.tm_hour = time2[3];
t2.tm_min = time2[4];
_t1 = _mkgmtime( &t1 );
_t2 = _mkgmtime( &t2 );
diff = difftime(_t2, _t1 );
printf( "相差 %.0f 分鍾
", diff / 60 );
}
(5)c語言編程tle是多少秒擴展閱讀:
C語言中有兩個相關的函數用來計算時間差,分別是:
time_t time( time_t *t) 與 clock_t clock(void)
頭文件: time.h
計算的時間單位分別為: s , ms
time_t 和 clock_t 是函數庫time.h 中定義的用來保存時間的數據結構
返回值:
1、time : 返回從公元1970年1月1號的UTC時間從0時0分0秒算起到現在所經過的秒數。如果參數 t 非空指針的話,返回的時間會保存在 t 所指向的內存。
2、clock:返回從「開啟這個程序進程」到「程序中調用clock()函數」時之間的CPU時鍾計時單元(clock tick)數。 1單元 = 1 ms。
所以我們可以根據具體情況需求,判斷採用哪一個函數。
具體用法如下例子:
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
time_t c_start, t_start, c_end, t_end;
c_start = clock(); //!< 單位為ms
t_start = time(NULL); //!< 單位為s
system("pause");
c_end = clock();
t_end = time(NULL);
//!<difftime(time_t, time_t)返回兩個time_t變數間的時間間隔,即時間差
printf("The pause used %f ms by clock() ",difftime(c_end,c_start));
printf("The pause used %f s by time() ",difftime(t_end,t_start));
system("pause");
return 0;
}
因此,要計算某一函數塊的佔用時間時,只需要在執行該函數塊之前和執行完該函數塊之後調用同一個時間計算函數。再調用函數difftime()計算兩者的差,即可得到耗費時間。
Ⅵ 在c語言程序中如何編輯秒數,讓它按小時;分鍾,秒的形式輸出
您好,是這樣的:
1.定義三個變數
分別來存儲輸入的分鍾數、轉換的小時數和剩餘的分鍾數。
2.
從界面獲取輸入的分鍾數。
3.
計算結果。
4.
把結果輸出到界面。
//1
定義三個變數
分別來存儲輸入的分鍾數、轉換的小時數和剩餘的分鍾數
//2
從界面獲取輸入的分鍾數
//3
計算結果
//4
把結果輸出到界面
int
i,
h,
m;
Console.WriteLine("請輸入一個分鍾數:");
i
=
int.Parse(Console.ReadLine());
h
=
i/60;
m
=
i%60;
Console.WriteLine("{0}分等於{1}小時{2}分",
i,
h,
m);
Console.ReadKey();
Ⅶ 「絕大多數代碼是WA,少數代碼是CE,TLE和RE」,請問WA,CE,RE,都是什麼意思啊
Online Judge系統(簡稱OJ)是一個在線的判題系統。用戶可以在線提交程序多種程序(如C、C++)源代薯首碼,系統對源代碼進行編譯和執行。
通過(Accepted,AC)、答案錯誤(Wrong Answer,WA)、超時(Time Limit Exceed,TLE)、如好超過輸出限制(Output Limit Exceed,OLE)、超內存(Memory Limit Exceed,MLE)、運行時錯誤(Runtime Error,RE)、渣手鉛格式錯誤(Presentation Error,PE)、無法編譯(Compile Error,CE)
Ⅷ 求一個c語言程序,將輸入幾時幾分幾秒轉化為多少秒
#include<stdio.h>
intmain()
{
inth,m,s;
scanf("%d小時%d分鍾%d秒",&h,&m,&s);
printf("%d秒",h*3600+m*60+s);
return0;
}
//運行示例:
Ⅸ C語言編程題讀取時間求助,謝大佬了!
字元轉整形的宴團敗簡單應用,晌顫使用或禪到頭文件 math.h。
例如:
void TimeGet(const MYTIME *time, int *hour, int *minute, int *second)
{
*hourt = atoi(&time->hour);
*minute= atoi(&time->minute);
*second= atoi(&time->second);
}
Ⅹ 在C語言程序中,延時函數的時間是怎麼算的
這個是和你機器的運算速度有關的
你要計算出這個函數用了多少時間就要用時間函數,我很久沒用了。
#include "stdlib.h"
void delay()
{
time_t start,end;
start=time(null);
unchar i;
while(z--)
{
for(i=0;i<121;i++);
}
end=time(null);
printf("%f",difftime(end,start));
}
//time_t是在頭文件中定義的,可能是個結構體類型裡面的成員定義了一些時間的單位,如年、月、日。在這里調用這個結構體定義2個變數;
//start=time(null);
將其中一個變數賦值。它的值等於當前的系統時間
//end=time(null);
在程序結束的時候再給另一個變數賦值,值等於當前的系統時間。
//difftime(end,start)
函數difftime();是double類型,用來計算運行的時間,用第一個參數的時間減去第二個參數的時間,得到的值就是運行用了多少時間。單位為秒