题解 | #日期累加#
日期累加
https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d
#include <iostream>
#include <iomanip>
using namespace std;
class Date
{
public:
//构造函数
Date(int year, int month, int dya)
:_year(year)
, _month(month)
, _day(dya)
{}
//计算某一年某一个月的天数
static int GetMonthDay(int year, int month, int dya)
{
static int MonthDay[13] = { -1,31,28,31,30,31,30,31,31,30,31,30,31 };
//判断是不是闰年
if ((month == 2) && ((year % 400 == 0) || (year % 100 != 0 && year % 4 == 0)))
{
return 29;
}
return MonthDay[month];
}
//运算符重载
Date& operator+=(int day)
{
_day += day;
while (_day > GetMonthDay(_year, _month, _day))
{
_day -= GetMonthDay(_year, _month, _day);
++_month;
if (_month > 12)
{
_year++;
_month = 1;
}
}
return *this;
}
//打印函数
void _print()
{
std::cout << std::setw(4) << std::setfill('0') << _year << "-"
<< std::setw(2) << std::setfill('0') << _month << "-"
<< std::setw(2) << std::setfill('0') << _day << std::endl;
}
private:
int _year;
int _month;
int _day;
};
//支持连续输入输出
int main()
{
int year; int month; int day; int Day; int conut;
cin >> conut;
for (int i = 0; i < conut; i++)
{
cin >> year >> month >> day >> Day;
Date A(year, month, day);
A += Day;
A._print();
}
return 0;
}
https://blog.csdn.net/Jason_from_China/article/details/142516352
这里本质也就是应该日期类的实现,所以还是很简单的,我这里直接上代码,不过多赘述
注意事项:
1,这里主要是输出的时候是需要注意格式的,_prntf
查看13道真题和解析
OPPO公司福利 1056人发布