题解 | #打印日期#打印日期简单思路解法

打印日期

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

#include <iostream>
using namespace std;
//判断闰年的函数
bool IsLeapYear(int year)
{
    return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
}


int main() {
    int year, day;
    while (cin >> year >> day) { // 注意 while 处理多个 case
	  //month初始定义为1,并给出每个月日期的数组
        int month = 1;
        int monthday[13] = {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
	  //若是闰年monthday[2]++
        if(IsLeapYear(year))
        {
            monthday[2]++;
        }
	  //使用输入的天数加去每月的天数,然后month++
	  //循环结束后剩下的day就是加完后的日期,month就是加完后的月
        while(day > monthday[month])
        {
            day -= monthday[month];
            month++;
        }

        printf("%04d-%02d-%02d\n",year, month, day);
        
    }
}
// 64 位输出请用 printf("%lld")

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

相关推荐

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