题解 | #日期累加#

日期累加

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

#include <iostream>
using namespace std;

int Getmonthday(int year,int month){
    int monthday[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    if(month==2 && ((year % 4 ==0 && year % 100!= 0) || year %400 ==0)) return 29;
    return monthday[month];
}

int main() {
    int m,year,month,day,number;
    while(cin >> m){
        while (cin>>year>>month>>day>>number){
            while(number>=0){
                int d = Getmonthday(year,month);
                if(d-day < number){
                    number -= d-day;
                    month++;
                    day =0;
                    if(month >= 13){
                        month =1;
                        year ++;
                    }
                }
                else {
                    day+=number;
                    break;
                }
            }
            printf("%04d-%02d-%02d\n",year,month,day);
        }
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

但我还是会继续秋招的
投递京东等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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