#include <stdio.h>
int main(int argc, const char *argv[])
{
int year,month,day,hour,min,sec;
year = 2020;
month = 1;
day = 31;
hour = 23;
min = 59;
sec = 55;
while(1)
{
sleep(1); //延时1s
sec++;
if(sec>=60)
{
min=min+1;
sec=0;
if(min>=60)
{
hour=hour+1;
min=0;
if(hour>=24)
{
day=day+1;
hour=0;
//先考虑月份大月的无论闰年都是31天
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
if(day>=32)
{
day=1;//新的一月,day变为第一天1
month=month+1;
}
}
//小月也是无论咋变都是30天
else if(month==4||month==6||month==9||month==11)
{
if(day>=31)
{
//31表示新的一月,day变为1
day=1;
month=month+1;
}
}
//可考虑特殊的2月闰年
else//只剩2月
{
if((year%4 == 0 && year%100 !=0)||year%400 == 0)//闰年29天
{
if(day>=30)
{
day=1;
month=month+1;
}
}
else//不是闰年28天
{if(day>=29)
{
day=1;
month=month+1;
}
}
}
//考虑年month>12的时候
if (month>=13)//当月刚等于13时候
{
year=year+1;
}
}
}
}
printf("%4d-%02d-%02d %02d:%02d:%02d\r",year,month,day,hour,min,sec);
fflush(stdout);
}
return 0;
}
效果: