#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