题解 | #日期累加#日期累加思路简单解法

日期累加

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

#include <iostream>
using namespace std;

bool IsLeapYear(int year) {
    return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
}

int main() {
    int m;
    cin >> m;
    int year, month, day, daysum;
    while ((m--) &&
            (cin >> year >> month >> day >> daysum)) { // 注意 while 处理多个 case
	  //先给出每个月的日期数组
            int monthday[13] = {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
	  //将当前的日期的day和要加的日期加在一起
        daysum += day;
        while (daysum > monthday[month]) {
            //若是闰年就是29否则28
            if (IsLeapYear(year)) {
                monthday[2] = 29;
            }
            else {
                monthday[2] = 28;
            }
		  //减点当前月的日期,然后month++
            daysum -= monthday[month];
            month++;
		  //如果month加到了12以上则将year++,将month重置为1
            if (month == 13) {
                year++;
                month = 1;
            }
        }


        printf("%04d-%02d-%02d\n", year, month, daysum);

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

#日期转换问题##日期累加#
全部评论

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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