【1】60秒倒计时(while()循环实现)
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
int a;
a = 60;
system("color Oa");
while (a >= 0)
{
system("cls");
printf("%d", a);
Sleep(1000);
a = a - 1;
}
return 0;
}
【2】当日倒计时
#include<stdio.h>
#include<time.h>
#include<windows.h>
int countDown()
{
int hour, min, sec;
int hour_h, min_m, sec_s;//accept time
int i, j, k;
time_t nowtime; //time_t equals long
struct tm* timeinfo;//time structure pointer variable
time(&nowtime); //get time
timeinfo = localtime(&nowtime);//turn into local time
hour = timeinfo->tm_hour;//the hour variable in tm struct
min = timeinfo->tm_min;
sec = timeinfo->tm_sec;
hour_h = 23 - hour;
min_m = 59 - min;
sec_s = 59 - sec;
printf("%02d:%02d:%02d", hour_h, min_m, sec_s); //今日剩余时分秒
printf("\nCount Down :\n");
for (i = hour_h; i >= 0; i--)
{
for (j = min_m; j >= 0; j--)
{
for (k = sec_s; k >= 0; k--)
{
printf("\r%02d:%02d:%02d", i, j, k); // 回车\r // 换行\n
Sleep(1000);
}
sec_s = 59;
}
min_m = 59;
}
return 0;
}
int main()
{
countDown();
return 0;
}
//'\r' 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;
//'\n' 换行,换到当前位置的下一行,而不会回到行首;
*timeinfo 中的内容如下: 年月日、时分秒、星期、天数。
实际是2022年10月7日,这里显示2122年9月7日???
【3】倒计时3分钟(嵌套for()循环实现)
时分秒的数值可由scanf()从键盘获取,自由DIY倒计时长。
#include<stdio.h>
#include<time.h>
#include<windows.h>
int countDown()
{
int hour_h, min_m, sec_s;//accept time
int i, j, k;
hour_h = 0;
min_m = 3;
sec_s = 0;
printf("%02d:%02d:%02d", hour_h, min_m, sec_s); //倒计时:时分秒
printf("\nCount Down :\n");
for (i = hour_h; i >= 0; i--)
{
for (j = min_m; j >= 0; j--)
{
for (k = sec_s; k >= 0; k--)
{
printf("\r%02d:%02d:%02d", i, j, k); // 回车\r // 换行\n
Sleep(1000);
}
sec_s = 59;
}
min_m = 59;
}
return 0;
}
int main()
{
countDown();
return 0;
}
//'\r' 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;
//'\n' 换行,换到当前位置的下一行,而不会回到行首;