题解 | #日期累加#

日期累加

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

#include <iostream>
using namespace std;

int main() {
    int N = 0;
    cin >> N;
    while (N--) {
        int monthall[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        int year, month, day, n;
        cin >> year >> month >> day >> n;
        day += n;
        if (day > 59 && (year % 4 == 0 && year % 100 != 0) || ( year  % 400 == 0)) {
            monthall[2] = 29;
        }
        while (day > monthall[month]) {

            day -= monthall[month];
            month++;
            if (month > 12) {
                month = 1;
                year++;
                if (day > 59 && (year % 4 == 0 && year % 100 != 0) || ( year  % 400 == 0)) {
                    monthall[2] = 29;
                }
                else {
                monthall[2] = 28;
                }
            }
        }
        if (day >= 10 && month >= 10)

            printf("%d-%d-%d", year, month, day);

        else if (day < 10 && month >= 10)

            printf("%d-%d-0%d", year, month, day);

        else if (day >= 10 && month < 10)

            printf("%d-0%d-%d", year, month, day);

        else

            printf("%d-0%d-0%d", year, month, day);

        printf("\n");
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 15:39
点赞 评论 收藏
分享
06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
07-02 10:44
门头沟学院 C++
码农索隆:太实诚了,告诉hr,你能实习至少6个月
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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