當前位置:編程學習大全網 - 源碼下載 - 用C編的程序倒記時,要求精確到秒。

用C編的程序倒記時,要求精確到秒。

倒計時代碼如下。

註:

代碼需要在VC或Dev-C++下編譯,因為TurboC中的time.h太老舊,不包括mktime等函數。

另外,如果覺得窗口有點閃動,可以在while循環尾部加上Sleep(500);這壹句,不過需要包含windows.h頭文件。

目標時間方面,tm_year指從1900年開始的年份,因此107指2007年,108指2008年,以此類推。

------------------------------------------

#include <time.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

void main()

{

time_t start, finish;

struct tm finish_t;

double elapsed_time;

int day,hour,minute,second;

_tzset();

finish_t.tm_year = 107;

finish_t.tm_mon = 11; // 取值0到11,4月的話應該是3

finish_t.tm_mday = 25; // 取值1到31

finish_t.tm_hour = 12; // 取值0到23

finish_t.tm_min = 38; // 取值0到59

finish_t.tm_sec = 0; // 取值0到59

finish_t.tm_wday = 1; // 星期標誌位,取值0到6

finish_t.tm_yday = 365; // 年標誌位,取值0到365

finish_t.tm_isdst = 0; // 標誌位

finish = mktime(&finish_t);

if(finish==-1)

{

printf("初始化錯誤。\n");

exit(-1);

}

if(finish<time(&start))

{

printf("時間差為負。\n");

exit(-1);

}

while( 1 )

{

while( !_kbhit() )

{

time(&start);

elapsed_time = difftime( finish, start );

day = (int)(elapsed_time/60/60/24);

hour = (int)(elapsed_time/60/60-24*day);

minute = (int)(elapsed_time/60-60*hour-60*24*day);

second = (int)(elapsed_time-60*minute-60*60*hour-60*60*24*day);

printf( "距離 %4d年%2d月%2d日%2d時%2d分%2d秒 還有 %2d天%2d時%2d分%2d秒\r",

finish_t.tm_year+1900, finish_t.tm_mon+1, finish_t.tm_mday,

finish_t.tm_hour, finish_t.tm_min, finish_t.tm_sec,

day,hour,minute,second

);

}

if(_getch()==27) break;

}

}

  • 上一篇:小滴課堂怎麽樣?
  • 下一篇:Spring Cloud Hystrix熔斷機制原理剖析
  • copyright 2024編程學習大全網