题目描述
定义日期类,重载自增运算。
输入
包括多组数据,每组包括3个整数表示一个日期中的年、月、日。
输出
日期的下一天。输出格式见样例。
样例输入 Copy
2000 1 2
2012 2 28
2001 2 28
2011 12 31
2012 4 30
样例输出 Copy
2000/1/3
2012/2/29
2001/3/1
2012/1/1
2012/5/1
# include <iostream>
using namespace std;
class Date
{
public:
Date() { year = 0; month = 0; day = 0; }
Date(int y, int m, int d) :year(y), month(m), day(d) {}
Date operator++();
void display();
private:
int year;
int month;
int day;
};
Date Date::operator++()
{
int days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
days[1] = 28;
if (year % 400 == 0 || year % 400 != 0 && year % 4 == 0)
days[1] = 29;
day++;
if (day > days[month - 1])
{
day = 1;
month++;
}
if (month > 12)
{
month = 1;
year++;
}
return Date(year, month, day);
}
void Date::display()
{
cout << year << "/" << month << "/" << day << endl;
}
int main()
{
int a, b, c;
while (cin >> a >> b >> c)
{
Date d(a, b, c);
++d;
d.display();
}
return 0;
}