题解 | #日期累加#

日期累加

https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d

#include <iostream>
//设计一个程序,他能够计算一个日期若干天后是什么日期
//输入第一行表示样例个数m,
//第二行是日期年月日+增加天数
int dayTab[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 IsLeapYear(int year){
    return ((year%4==0&&year%100!=0)||year%400==0);
}
int main() {
    int m;//输入几行数据
    int year,month,day,number;//日期
    scanf("%d",&m);
    int i=0;
        while(i<m){
            scanf("%d %d %d %d",&year,&month,&day,&number);
        int row=(IsLeapYear(year));//判断闰年
        int tag=dayTab[row][month]-day;//计划先将第一个月填平,填成本月最后一天
        number=number-tag;
        day=dayTab[row][month];
        while(number>0){
            if(month<=12){
                    month += 1;
                    number = number - dayTab[row][month];
            }
           else{
               year+=1;
               row=(IsLeapYear(year));
               month=0;
        }
        }
        day=number+dayTab[row][month];
        printf("%04d-%02d-%02d\n",year,month,day);
        i+=1;
    }

    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 11:29
已编辑
斯卡蒂味的鱼汤:知道你不会来数马,就不捞你😂最近数马疯狂扩招,招聘要求挺低的,你能力肯定够,应该就是因为太强了,知道你不会来才不捞你
投递腾讯云智研发等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务