为什么我if判断完闰年之后。和他对应的else,还是进行了。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b, c;
/*scanf("%d-%d-%d", &a, &b, &c);*/
a = 2000; b = 12; c = 30;
if ((a % 4 == 0 && a % 100 != 0) || (a % 400 == 0))//是闰年
{
if (b == 1 || b == 3 || b == 5 || b == 7 || b == 8 || b == 10 || b == 12)
{
if (c + 5 <= 31)//未超过本月份天数
{
c += 5;
}
else//超过本月份天数
{
b += 1;
if (b > 12)
{
a += 1;
b = 1;
}
c = 5 - (31 - c);
}
}
if (b == 2)
{
if (c + 5 <= 29)//未
{
c += 5;
}
else//超
{
b += 1;
c = 5 - (29 - c);
}
}
else
{
if (c + 5 <= 30)//未
{
c += 5;
}
else//超
{
b += 1;
c = 5 - (30 - c);
}
}
}
else//不是闰年
{
if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
{
if (c + 5 <= 31)//未超过本月份天数
{
c += 5;
}
else//超过本月份天数
{
b += 1;
if (b>12)
{
a += 1;
b = 1;
}
c = 5 - (31 - c);
}
}
if(b==2)
{
if (c + 5 <= 28)//未
{
c += 5;
}
else//超
{
b += 1;
c = 5 - (28 - c);
}
}
else
{
if (c + 5 <= 30)//未
{
c += 5;
}
else//超
{
b += 1;
c = 5 - (30 - c);
}
}
}
printf("%d年%d月%d日", a, b, c);
return 0;
}