题解 | 日期累加

日期累加

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

#include <iostream>
using namespace std;

    int GetMonthDay(int year, int month) {
        static int days[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;
        } else {
            return days[month];
        }
    }

int main() {
    int m;
    cin>>m;
    for(int i = 0; i < m; i++){
        int yyyy, mm, dd, n;
        cin>>yyyy>>mm>>dd>>n;
        while(n > 0){
            dd += 1;
            if(dd > GetMonthDay(yyyy, mm)){
                dd = 1;
                mm += 1;
            }
            if(mm > 12){
                mm = 1;
                yyyy += 1;
            }
            n -= 1;
        }
        printf("%04d-%02d-%02d\n",yyyy,mm,dd);
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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