明天是几号?
Problem Description
忙碌了一天的 bLue 累得瘫在床上,他想知道明天是几号,你能告诉他吗?
Input
输入数据有多组(数据组数不超过 50000),到 EOF 结束。
每组数据输入一行,包含用空格隔开的 3 个整数,表示今天的日期,分别为年、月、日。
保证输入日期的年份在 1900 到 2035 之间。
Output
对于每组数据,在一行中输出明天的日期,格式为 "y m d",分别表示年、月、日。
Example Input
2016 12 27 2016 2 29
Example Output
2016 12 28 2016 3 1
Hint
能被 4 整除且非整百年的,或能被 400 整除的为闰年。
#include <stdio.h>
#include <math.h>
int main()
{
int year, month, day, a;
a=1;
while(scanf("%d%d%d", &year, &month, &day)!=EOF)
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
{
if(day==31)
{
printf("%d %d %d\n", year, month+1, a);break;
}
else
{
printf("%d %d %d\n", year, month, day+1);break;
}
}
case 12:
{
if(day==31)
{
printf("%d %d %d\n", year+1, a, a);break;
}
else
{
printf("%d %d %d\n", year, month, day+1);break;
}
}
case 4:
case 6:
case 9:
case 11:
{
if(day==30)
{
printf("%d %d %d\n", year, month+1, a);break;
}
else
{
printf("%d %d %d\n", year, month, day+1);break;
}
}
case 2:
if(year%4==0&&year%100!=0||year%400==0)
{
if(day==29)
{
printf("%d %d %d\n", year, month+1, a);break;
}
else
{
printf("%d %d %d\n", year, month, day+1);break;
}
}
else
{
if(day==28)
{
printf("%d %d %d\n", year, month+1, a);break;
}
else
{
printf("%d %d %d\n", year, month, day+1);break;
}
}
}
}
return 0;
}