1. 程式人生 > >輸入年月日時分秒,輸出下一秒的時間。

輸入年月日時分秒,輸出下一秒的時間。

#include "stdio.h"
void main()
{
int yea,mon,day,hou,min,sec;
while(1)
{
printf("請輸入年月日時分秒!\n");
scanf("%d%d%d%d%d%d",&yea,&mon,&day,&hou,&min,&sec);
printf("你輸入的是時間是:\n%d年%d月%d日%d小時%d分%d秒\n",yea,mon,day,hou,min,sec);
if(mon>0&&mon<13&&day<32&&day>0&&hou<24&&hou>-1&&min>-1&&min<60&&sec>-1&&sec<60)
{
sec = sec + 1;//秒數____進位判斷
if(sec == 60)
{
sec = 0;
min = min + 1;
}
if(min == 60)
{
min = 0;
hou = hou + 1;
}
if(hou == 24)
{
hou = 0;
day = day + 1;
}
/*____根據秒數判斷:算到___天,day向month進位時__需要考慮分為30天__和31天__的月份,最重要的是考慮__閏年的2月__!____*/


/*_____________________________________________________*/


if((yea%400 == 0)||((yea%4 == 0) && (yea%100 != 0)) )//閏年
{
if(mon == 2) //2 月
{
if(day == 30)//______________________________________________________________期間寫錯一次,因為把 ==  寫成了  =  !!!!!
{
day = 1;
mon = mon + 1;
}
}
if(mon ==1||mon ==3||mon ==5||mon ==7||mon ==8||mon ==10||mon ==12)//1.3.5.7.8.10.12
{
if(day == 32)
{
day = 1;
mon  = mon + 1;
}
}
if(mon ==4||mon ==6||mon ==9||mon ==11)//4.6.9.11
{
if(day == 31)
{
day = 1;
mon = mon +1;
}
}
if(mon == 13)
{
mon = 1;
yea = yea + 1;
}
}
/*_______________________________________________*/
else//非閏年
{
if(mon ==1||mon ==3||mon ==5||mon ==7||mon ==8||mon ==10||mon ==12)//1.3.5.7.8.10.12
{
if(day == 32)
{
day = 1;
mon  = mon + 1;
}
}
if(mon == 2||mon ==4||mon ==6||mon ==9||mon ==11)//2.4.6.9.11
{
if(day == 31)
{
day = 1;
mon = mon +1;
}
}
if(mon == 13)
{
mon = 1;
yea = yea + 1;
}
}
printf("下一秒是:\n");
printf("%d年%d月%d日%d時%d分%d秒\n\n",yea,mon,day,hou,min,sec);
fflush(stdin);
}
else printf("請輸入正確的年月日!\n\n");
    fflush(stdin);
}

}

//DD  為啥我的沒有像編譯器裡的程式碼那種顯示風格