A. c語言 輸入時間顯示不同時間段
#include <stdio.h>
int main()
{
//int a[10];
int time;
char c;
int m;
printf("請輸時間: ");
scanf("%d%c%d",&time,&c,&m);
if(0<=time&&time<=5)
{
if(0<=m&&m<9)
printf("凌晨好,現在是%d%c0%d",time,c,m);
printf("凌晨好,現在是%d%c%d",time,c,m);
}
if(5<time&&time<=8)
{
if(0<=m&&m<9)
printf("早上好,現在是%d%c0%d",time,c,m);
printf("早上好,現在是%d%c%d",time,c,m);
}
if(8<time&&time<=11)
{
if(0<=m&&m<9)
printf("上午好,現在是%d%c0%d",time,c,m);
printf("上午好,現在是%d%c%d",time,c,m);
}
if(11<time&&time<=13)
{
if(0<=m&&m<9)
printf("中午好,現在是%d%c0%d",time,c,m);
printf("中午好,現在是%d%c%d",time,c,m);
}
if(13<time&&time<=18)
{
if(0<=m&&m<9)
printf("下午好,現在是%d%c0%d",time,c,m);
printf("下午好,現在是%d%c%d",time,c,m);
}
if(18<time&&time<24)
{
if(0<=m&&m<9)
printf("晚上好,現在是%d%c0%d",time,c,m);
printf("晚上好,現在是%d%c%d",time,c,m);
}
return 0;
}
ok
B. C語言編程如何設置時間
struct tm *tm; time_t t;
char timebuf[20]
memset(timebuf,0,sizeof(timebuf));
time(&t);
tm = localtime(&t);
strftime(timebuf,15,"%Y%m%d%H%M%S",tm);
printf("current time is [%s]",timebuf);
C. 怎麼使用C語言實現每隔一段時間執行一個函數
Windows提供了定時器,幫助編寫定期發送消息的程序。定時器一般通過一下兩中方式通知應用程序間隔時間已到。 ⑴ 給指定窗口發送WM_TIMER消息,也就是下面的給出在窗口類中使用的方法。 ⑵ 調用一個應用程序定義的回調函數,也就是在非窗口類中使用方法。 4.1 在窗口類中使用定時器 在窗口類中使用定時器比較簡單。假如我們想讓這個窗口上放置一個電子鍾,這樣我們必須每1秒或者0.5秒鍾去更新顯示顯見。按照下面的步驟,就可以完成這個電子鍾程序,並且知道如何在窗口類中使用定時器: 首先做在我們新建項目的主窗口上添加一個Label控制項,用來顯示時間。接著 ⑴ 用函數SetTimer設置一個定時器,函數格式如下: UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD)); 這個函數是CWnd類的一個成員函數,其參數意義如下: nIDEvent: 為設定的定時器指定的定時器標志值,設置多個定時器的時候,每個定時器的值都不同,消息處理函數就是通過這個參數來判斷是哪個定時器的。這里我們設定為1。 nElapse: 指定發送消息的時間間隔,單位是毫秒。這里我們設定為1000,也就是一秒。 lpfnTimer: 指定定時器消息由哪個回調函數來執行,如果為空,WM_TIMER將加入到應用程序的消息隊列中,並由CWnd類來處理。這里我們設定為NULL。 最後代碼如下:SetTimer(1,1000,NULL); ⑵ 通過Class Wizard給主窗口類添加一個WM_TIMER消息的映射函數,默認為OnTimer(UINT nIDEvent)。 ⑶ 然後我們就可以在OnTimer(UINT nIDEvent)的函數實現中添加我們的代碼了。參數nIDEvent就是我們先前設定定時器時指定的標志值,在這里我們就可以通過它來區別不同的定時器,而作出不同的處理。添加的代碼如下:switch(nIDEvent) { case 1: CTime m_SysTime = CTime::GetCurrentTime(); SetDlgItemText(IDC_STATIC_TIME,m_SysTime.Format("%Y年%m月%d日 %H:%M:%S")); break; } 代碼中的IDC_STATIC_TIME就是我們先前添加的Label控制項的ID。 至此,我們的電子鍾的程序就完成了。 4.2 在非窗口類中使用定時器 在非窗口類中使用定時器就要用到前面我們介紹到的所有知識了。因為是無窗口類,所以我們不能使用在窗口類中用消息映射的方法來設置定時器,這時候就必須要用到回調函數。又因為回調函數是具有一定格式的,它的參數不能由我們自己來決定,所以我們沒辦法利用參數將this傳遞進去。可是靜態成員函數是可以訪問靜態成員變數的,因此我們可以把this保存在一個靜態成員變數中,在靜態成員函數中就可以使用該指針,對於只有一個實例的指針,這種方法還是行的通的,由於在一個類中該靜態成員變數只有一個拷貝,對於有多個實例的類,我們就不能用區分了。解決的辦法就是把定時器標志值作為關鍵字,類實例的指針作為項,保存在一個靜態映射表中,因為是標志值是唯一的,用它就可以快速檢索出映射表中對應的該實例的指針,因為是靜態的,所以回調函數是可以訪問他們的。 首先介紹一下用於設置定時的函數: UINT SetTimer( HWND hWnd, // handle of window for timer messages UINT nIDEvent, // timer identifier UINT uElapse, // time-out value TIMERPROC lpTimerFunc // address of timer procere ); 其中的參數意義如下: hWnd: 指定與定時器相關聯的窗口的句柄。這里我們設為NULL。 nIDEvent: 定時器標志值,如果hWnd參數為NULL,它將會被跳過,所以我們也設定為NULL。 uElapse: 指定發送消息的時間間隔,單位是毫秒。這里我們不指定,用參數傳入。 lpTimerFunc: 指定當間隔時間到的時候被統治的函數的地址,也就是這里的回調函數。這個函數的格式必須為以下格式: VOID CALLBACK TimerProc( HWND hwnd, // handle of window for timer messages UINT uMsg, // WM_TIMER message UINT idEvent, // timer identifier DWORD dwTime // current system time ); 其中的參數意義如下: hwnd: 與定時器相關聯的窗口的句柄。 uMsg: WM_TIMER消息。 idEvent: 定時器標志值。 deTime: 系統啟動後所以經過的時間,單位毫秒。 最後設定定時器的代碼為:m_nTimerID = SetTimer(NULL,NULL,nElapse,MyTimerProc); 先通過Class Wizard創建一個非窗口類,選擇Generic Class類類型,類名稱為CMyTimer,該類的作用是每隔一段時間提醒我們做某件事情,然後用這個類創建三個實例,每個實例以不同的時間間隔提醒我們做不同的事情。 MyTimer.h#include class CMyTimer; //用模板類中的映射表類定義一種數據類型 typedef CMap CTimerMap; class CMyTimer { public: //設置定時器,nElapse表示時間間隔,sz表示要提示的內容 void SetMyTimer(UINT nElapse,CString sz); //銷毀該實例的定時器 void KillMyTimer(); //保存該實例的定時器標志值 UINT m_nTimerID; //靜態數據成員要提示的內容 CString szContent; //聲明靜態數據成員,映射表類,用於保存所有的定時器信息 static CTimerMap m_sTimeMap; //靜態成員函數,用於處理定時器的消息 static void CALLBACK MyTimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime); CMyTimer(); virtual ~CMyTimer(); }; MyTimer.cpp#include "stdafx.h" #include "MyTimer.h" //必須要在外部定義一下靜態數據成員 CTimerMap CMyTimer::m_sTimeMap; CMyTimer::CMyTimer() { m_nTimerID = 0; } CMyTimer::~CMyTimer() { } void CALLBACK CMyTimer::MyTimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime) { CString sz; sz.Format("%d號定時器:%s", idEvent, m_sTimeMap[idEvent]->szContent); AfxMessageBox(sz); } void CMyTimer::SetMyTimer(UINT nElapse,CString sz) { szContent = sz; m_nTimerID = SetTimer(NULL,NULL,nElapse,MyTimerProc); m_sTimeMap[m_nTimerID] = this; } void CMyTimer::KillMyTimer() { KillTimer(NULL,m_nTimerID); m_sTimeMap.RemoveKey(m_nTimerID); } 這樣就完成了在非窗口類中使用定時器的方法。以上這些代碼都在Windwos 2000 Professional 和 Visual C++ 6.0中編譯通過
D. C語言程序怎樣實現時間間隔。
C編程 #include <time.h>
用 clock() 計時。
下面是等待多少毫秒(0.001秒)的子程序:
void wait ( int ms )
{
clock_t endwait;
endwait = clock () + ms * CLOCKS_PER_SEC / 1000 ;
while (clock() < endwait) {}
}
main()
{
int i;
for (i=0;i<10;i++)
{
wait ( 100 ); // 等0.1秒
printf("%d ",i);
}
}
E. 在c語言編程中,如果先執行一條語句,隔段時間,在執行下一條語言,該怎樣實現呢
兩句語句中間加上
Sleep(2000);
就是等2秒,參數單位是毫秒
貌似要引用<windows.h>
F. 求一條c語言指令 我想寫一些話 用printf輸出 但每句話中間想要有一段時間的間隔 不知道應該用什麼指令
#include <stdio.h>
#include <windows.h>
#define STR_PRINTF "This is C\n"
int main(void)
{
printf("Hello Word!\n");
Sleep(1000);//毫秒為單位
printf(STR_PRINTF);
return 0;
}
好心的樓主,如果可以就採納吧!
G. C語言 每一次循環間隔的時間。for while這類,每60s循環一次,怎麼用時間控制最好不要用
每次循環進程休眠60秒
H. c語言時間間隔代碼怎麼弄
這個是一個求時間間隔的函數,可能還不是很准確,因為是以秒數相除求解的。所以有待改進。
[cpp] view plain
int getDay(int *diffday/*天數*/)
time_t rawtime;
struct tm nowdate, setdate;
long dftime;
long daysecond = 60*60*24;//一天的總秒數
I. C語言時間間隔
double difftime(
time_t timer1,
time_t timer0
);
double _difftime32(
__time32_t timer1,
__time32_t timer0
);
double _difftime64(
__time64_t timer1,
__time64_t timer0
);
參數
timer1
關閉時。
timer0
啟動時間。
返回值
difftime 返回經過的時間 (以秒為單位),從 timer0 到 timer1。 返回的值是一個雙精度浮點數。 返回值可能為 0,指示錯誤。
備注
difftime 函數計算兩個提供的時間值 timer0 和 timer1之間的差異。
J. 關於C語言中時間間隔的求法
long ToLong(int hour,int minute,int second)
{
return hour*3600+minute*60+second;
}
void ToTime(long totalSeconds,int* hour,int* minute,int* second)
{
*second=totalSeconds%60;
totalSeconds/=60;
*minute=totalSeconds%60;
totalSeconds/=60;
*hour=totalSeconds;
}
int main()
{
int h1,m1,s1,h2,m2,s2,h3,m3,s3;
int h,m,s;
scanf("%d:%d:%d;%d:%d:%d",&h1,&m1,&s1,&h2,&m2,&s2);
long diff=abs(ToLong(h1,m1,s1)-ToLong(h2,m2,s2));
ToTime(diff,&h,&m,&s);
printf("%.2d:%.2d:%.2d",h,m,s);
return 0;
}