首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-04-08 
请教各位大侠两个关于倒计时控制的问题???程序如下:#include time.h#include stdio.h#include conio.

请教各位大侠两个关于倒计时控制的问题???
程序如下:
#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循环中每次获取当前系统时间,然后比较下 时间是否过去一秒,然后刷新

热点排行