C语言中,输入某时某分某秒,我希望能在那时的前20秒显示出一段话,怎么做啊。例如:

我输入现在时间1h2m30s,我希望1h5m0s喝一杯咖啡,然后我的系统开始计时
1h2m30s
1h2m31s
1h2m32s(每秒显示)
...(以上我都会做)
1h4m38
1h4m39
1h4m40(这是我希望电脑能显示出一句话)
然后继续计时知道1h5m

怎么做啊,求大大帮助

先输入现在时间(比如1h2m30s),回车
再输入喝咖啡时间,回车
然后等着就行了!!请看:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define INTERVAL 20
void sleep( long wait )
{
long goal;
goal = wait + clock();
while( goal > clock() );
}
main()
{
int now,begin,goal,t;
int h,m,s;
int eh,em,es;
scanf("%dh%dm%ds",&h,&m,&s);
scanf("%dh%dm%ds",&eh,&em,&es);
goal=eh*60*60+em*60+es;
while(1)
{
sleep(1000);
system("cls");
s++;if(s>=60){s=00;m++;}
if(m>=60){m=00;h++;}
printf("%dh%dm%ds",h,m,s);
t=h*60*60+m*60+s;
if(goal-t<=INTERVAL)printf("喝一杯咖啡!\n");
if(goal-t<=0){printf("Time out!\n");exit(0);}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-08
试试这个,这个是我以前写定时关机是用的提前5秒提示的判断语句,我粗率的改成了20秒提示,我想应该会使用你说的这个。也可能会有些小错误,先试试看吧。
if (second - 20 < 0) //second是你设置的秒数
{
secont2 = 60 - (20 - second);
if (minute - 1 < 0) //minute是你设置的分数
{
minute2 = 59;
if (hour - 1 < 0) //hour是你设置的小时数
{
hour2 = 23;
}
else
{
hour2 = hour - 1;
}
}
else
{
minute2 = minute - 1;
hour2 = hour;
}
}
else
{
secont2 = second - 20;
minute2 = minute;
hour2 = hour;
}
计算后写如果与现在的时间相等就提示一句话。
第2个回答  2013-01-08
if (当前时间 == 设定时间 - 20秒)
printf("希望输出的话");

就这个意思
第3个回答  2013-01-08
计数,到1时4分40秒共多少秒现在显示你的话吧!再数到1h5m多少秒显示快喝咖啡,凉了就不好喝了!
相似回答