3.4小节——问题 E: 日期累加

题目描述:

设计一个程序能计算一个日期加上若干天后是什么日期。

输入

输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。

输出

输出m行,每行按yyyy-mm-dd的个数输出。

样例输入

1
2008 2 3 100

样例输出

2008-05-13

代码

#include<cstdio>
int month[13][2]={{0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31}};
bool leap(int year){
    return (year%4==0&&year%100!=0||year%400==0);
}
int main(){
    int M;
    scanf("%d",&M);
    int y,m,d,N,nextd;
    while(M--){
        scanf("%d %d %d %d",&y,&m,&d,&N);
        d+=N;
        nextd=0;
        while(d>0){
            nextd++;
            if(nextd==month[m][leap(y)]+1){
                m++;
                nextd=1;
            }
            if(m==13){
                y++;
                m=1;
            }
            d--;
        }
        printf("%d-%02d-%02d\n",y,m,nextd);
    }
    return 0;
}
    原文作者:codeup题目解答
    原文地址: https://blog.csdn.net/weixin_42114379/article/details/82284197
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞