读书人

大侠两个关于倒计时控制的有关问题?

发布时间: 2012-04-08 14:38:30 作者: rapoo

请教各位大侠两个关于倒计时控制的问题???
程序如下:
#include "time.h"
#include "stdio.h"
#include <conio.h>
#include <process.h>
void main()
{
int day, hour, minute, second;
time_t ltime,ltime2, ltime3, ltime4;
struct tm ymas;
printf("请输入截止时间: \n");
scanf("%d %d %d %d %d %d",&ymas.tm_year,&ymas.tm_mon,&ymas.tm_mday,&ymas.tm_hour,&ymas.tm_min,&ymas.tm_sec);
_tzset();
ltime2= mktime(&ymas);
while(!_kbhit())
{
time( &ltime ); //系统时间
if(ltime3!= ltime2-ltime)
{
ltime4= ltime3= ltime2-ltime;
second= ltime4%60;
ltime4/= 60;
minute= ltime4%60;
ltime4/= 60;
hour= ltime4%24;
ltime4/=24;
day= ltime4;
system("cls");
printf("2008 Olympic Games TIME: 8:00 8/8 2008\n");
printf( "Left Time: Day: %d hour: %d minute: %d sec: %d\n\n", day,hour,minute,second);
}
}
}
问题一:我输入截止时间年份是从1900年开始算的秒数,例如要算2008年奥运会时间必须输108(2008-1900),不方便,怎么可以直接输入2008就行呢?
问题二:当开始时间不取系统时间,而是任意一个时间点,如何也能实现倒计时效果,精确到秒,谢谢!

[解决办法]
第一个问题自己想去...变化一下数据不就行了!

第二个问题的思路可以是这样,以当前系统时间为参照,然后和输入的两个时间做差,这样就能得到两个输入时间的差了。否则你自己来写设

置时间的函数太麻烦了...
[解决办法]
第一个问题 输入之后,计算一下就可以了。
第二个问题支持楼上,找个固定时间做参照
[解决办法]
问题2, 利用mktime获得两个日期相差多少秒, 然后定时器一秒一秒的计数好了
[解决办法]
你可以在WHILE循环中每次获取当前系统时间,然后比较下 时间是否过去一秒,然后刷新

读书人网 >C++

热点推荐