Codeup墓地—问题 E: 日期累加

题目描述

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

输入

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

输出

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

样例输入

1
2008 2 3 100

样例输出

2008-05-13
#include <stdio.h>
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}};
int isLeapyear(int year)   //判断是否是闰年
{
    if((year%4==0&&year%100!=0)||(year%400==0))
        return 1;
    else
        return 0;
}
int main()
{
    //month存储天数,一维代表平年,二维代表闰年
    int n,y,m,d,t;
    scanf("%d",&n);
    for(int i=0; i<n; i++)
    {
        scanf("%d %d %d %d",&y,&m,&d,&t);   //输入数据
        while(t--)
        {
            d++;      //日期加1
            if(d==month[m][isLeapyear(y)]+1)  //判断是否满月
            {
                m++;
                d=1;
            }
            if(m==13)     //判断是否满年
            {
                y++;
                m=1;
            }
        }
        printf("%d-%02d-%02d\n",y,m,d);
    }
    return 0;
}

运行结果:

发布了462 篇原创文章 · 获赞 55 · 访问量 32万+

猜你喜欢

转载自blog.csdn.net/LY_624/article/details/88781299
今日推荐