C语言实现今天倒计时

昨天弄了一个520表白倒计时。

520已经过了,现在来写弄一个今天倒计时,

之前用system("cls")这个清屏,但是每清一次就要闪烁一次,看着就不爽,然后各种百度,现在已经解决屏幕闪烁的问题!


先上一张程序效果图吧,有图有真相!


C语言实现今天倒计时_第1张图片



改变字体颜色!


C语言实现今天倒计时_第2张图片


这里关于  SetConsoleTextAttribute函数将不作介绍,百度很多,自己百度win32 api。



好了,直接上程序源码吧,很简单的!!!编译环境为Vc++6.0简化版,32M那个。

不能编译的可能原因为 缺少

graphics.h
这个头文件,解决很简单,去下载一个来就行!

下载地址:
http://www.easyx.cn

#include
#include
#include
#include
#include 
#include 
HANDLE hOut, hIn;
void HideCursor()
{
	CONSOLE_CURSOR_INFO cursor_info = { 1, 0 };	//后边的0代表光标不可见
	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
void ClearScreen()   //清屏  ps:比cls好,不会闪烁
  {   
  HANDLE   hOutput=GetStdHandle(STD_OUTPUT_HANDLE);   
  CONSOLE_SCREEN_BUFFER_INFO   sbi;   
  GetConsoleScreenBufferInfo(hOutput,&sbi);   
  DWORD   len=sbi.dwSize.X*sbi.dwCursorPosition.Y+sbi.dwCursorPosition.X+1;   
  COORD   cd={0,0};   
  DWORD   nw;   
  FillConsoleOutputCharacter(hOutput,_T('   '),len,cd,&nw);     
  SetConsoleCursorPosition(hOutput,cd);   
  }  
void timee(){
		int h,f,s,i,j,n,k;
		time_t timea;
		struct tm *p; 
     time(&timea);
	p=localtime(&timea);
	h=24-p->tm_hour-1;//距离今天结束最多还有多少个小时
	f=60-p->tm_min-1;//
  	s=60-p->tm_sec;
 	n=h*3600+f*60+s;
	for(;n>=0;n--){
		 time(&timea);
        Sleep(1000);
	 ClearScreen();
		printf("\n\t\t\t现在是:%s",ctime(&timea));
		if(n/3600==0){
				printf("\n\n\t\t\t离明天还有:\n\n");
	printf("\t\t\t%02d小时:%02d分:%02d秒",n/3600,(n%3600)/60,n%60);
	printf("\n\n\n\t\t\t今天你都做了些什么?不要虚度光阴!");
		}
		else{
	printf("\n\n\t\t\t离明天还有:\n\n");
	printf("\t\t\t%02d小时:%02d分:%02d秒",n/3600,(n%3600)/60,n%60);
	printf("\n\n\n\t\t\t时间正在慢慢的流逝!请抓紧时间做有用的事情!!!");
		}
	printf("\n\n\n\t\t\t\t甩甩制作!");
	}
}
int main()
{
	int f,s,i,j,n,k;   
HANDLE consolehwnd; //创建句柄,详细句柄知识,请百度一下或查MSDN
consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE); //实例化句柄
SetConsoleTextAttribute(consolehwnd, FOREGROUND_GREEN);
//	system("color 0A");
	SetConsoleTitle( "今天倒计时");
	 HideCursor();
	 timee();
	return 0;
}


程序不是很完整,可能出现漏洞,比如小时之间更换的时候 分钟,秒钟出现-1,-2,我稍微做了一下改变,不知道这个漏洞解决没有。

待你写出更加完美的程序。

想要实现其它倒计时程序也很简单,,,自己琢磨吧。



你可能感兴趣的:(C语言)