Codeup100000578问题 E: 日期累加
题目描述:
设计一个程序能计算一个日期加上若干天后是什么日期。
输入:
输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。
输出:
输出m行,每行按yyyy-mm-dd的个数输出。
样例输入:
1
2008 2 3 100
样例输出:
2008-05-13
实现代码:
#include <cstdio>
#include <cstring>
const int monthdays[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
bool leapyear(int year){
return (year%4==0&&year%100!=0)||(year%400==0);
}
int main()
{
int m;
scanf("%d",&m);
for(int j=0;j<m;j++){
int year,month,day,n;
scanf("%d%d%d%d",&year,&month,&day,&n);
for(int i=0;i<n;i++){
day++;
if(day==monthdays[leapyear(year)][month]+1){
month++;
day=1;
}
if(month==13){
month=1;
year++;
}
}
printf("%04d-%02d-%02d\n",year,month,day);
}
return 0;
}