题解 | #日期累加#

日期累加

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

#include <iostream>
using namespace std;
int month_day(int month,int year){
    int months[13] = {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 months[month];
}
int main() {
    int n;
    cin >> n;
    while (n--) { // 注意 while 处理多个 case
        int year = 0, month = 0, day = 0,days = 0;
        cin >> year >> month >> day >> days;
        while(days--){
            day++;
            if(day > month_day(month,year)){
                ++month;
                if(month > 12){
                    ++year;
                    month = 1;
                }
                day = 1;
            }
        }
        printf("%04d-%02d-%02d\n",year,month,day);
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务