题目描述
ZCQ老师的生日是Y年M月D日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。
输入
只有一行,分别读入Y,M,D(分别代表年、月、日),日期绝对合法。
(1900<=Y<=2008,1<=M<=12,1<=D<=31)
输出
只有一行,即ZCQ老师生日第一万天以后的日期,格式为“Y-M-D”。(注意年月日之间用横线,即英文状态下的减号连接)
样例输入
1979 4 16
样例输出
2006-9-1
#include<iostream>
using namespace std;
int main(){
int y,m,d,i;//变量分别为年,月,日,循环变量
cin>>y>>m>>d;//输入
for(i=1;i<=10000;i++){//循环10000次
d++;//将日增加1
switch(m)
{
case 1:case 3:case 5:case 7:case 8:case 10://大月不得超过31天,超过则日归一,月加1
{
if(d>31)m++,d=1;
break;
}
case 4:case 6:case 9:case 11://小月不得超过30天,超过则日归一,月加1
{
if(d>30)m++,d=1;
break;
}
case 12://单独拎出来,不得超过31天,超过则日、月归一,年加1
{
if(d>31)y++,m=1,d=1;
break;
}
case 2://单独拎出来,闰年不得超过29天,平年不得超过28天,超过则日一,月加1
{
if((y%4==0&&y%100!=0)||(y%400==0))
{
if(d>29)m++,d=1;
}
else if(d>28)m++,d=1;
break;
}
}
}cout<<y<<'-'<<m<<'-'<<d;//输出
return 0;
}