题解 | #日期累加#

日期累加

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

#include <iostream>
using namespace std;
class Date {

public:

	void Print()
	{
		printf("%d-%02d-%02d\n", _year, _month, _day);
	}
	int GetMonthDay(int year, int month)
	{
		int MonthDayArray[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 MonthDayArray[month];
	}

	Date &operator+= (int day)
	{
		_day += day;
		while (_day > GetMonthDay(_year,_month))
		{
			_day -= GetMonthDay(_year, _month);
			++_month;
			if (_month == 13)
			{
				_year += 1;
				_month = 1;
			}
		}
		return *this;
	}

	Date(int year = 1,int month = 1,int day = 1)
		:_year(year)
		,_month(month)
		,_day(day)
	{}

private:
	int _year;
	int _month;
	int _day;

};


int main()
{
	int line = 0;
	scanf("%d", &line);
	int year = 0, month = 0, day = 0, AddDay = 0;
	while( scanf("%d %d %d %d", &year, &month,&day,&AddDay) != EOF)
    {
        Date d1(year,month,day);
        d1 += AddDay;
        d1.Print();
    }
}

全部评论

相关推荐

01-08 09:40
中南大学 Java
苏苏加油努力:你的女神不回你消息,并且给别的男生发消息 be like
点赞 评论 收藏
分享
给🐭🐭个面试机会吧:嘿,mvbatis
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务