定義日期類型Date。要求有以下成員:
(1)可以設置日期;
(2)日期加一天操作;
(3)輸入函數,輸入格式爲:XXXX XX XX,如2010 4 13;
(4)輸出函數,輸出格式爲:XXXX年XX月XX日,如2010年4月11日。
#include<iostream>
using namespace std;
bool IsLeapYear(int y)
{
if( (0 == y % 4) && (0 != y % 100) || (0 == y % 400) )
return true;
else
return false;
}
class date
{
public:
date(int y, int m, int d);
void Add_One_Day();
void Input();
void Output();
private:
int year;
int month;
int day;
};
date::date(int y, int m, int d)
{
year = y;
month = m;
day = d;
}
void date::Input()
{
cout << "Please input the year, month, day: ";
cin >> year >> month >> day;
}
void date::Output()
{
cout << year << "年" << month << "月"<< day << "日" << endl;
}
//加一天操作
void date::Add_One_Day()
{
if(day==31)
{
if(month==12)
{
year += 1;
month = day = 1;
}
else
month += 1;
}
else if(day==30)
{
switch(month)
{
case 4:
case 6:
case 9:
case 11:month += 1;day =1;break;
default:day += 1;break;
}
}
else if(day==29)
{
if(2==month)
{
day =1;
month += 1;
}
else
day += 1;
}
else if(day==28)
{
if(2==month)
if(IsLeapYear(year))
day += 1;
else
{
month += 1;
day = 1;
}
}
else
day += 1;
}
int main(void)
{
date DATE(2010, 4, 13);
DATE.Output();
DATE.Add_One_Day();
DATE.Output();
DATE.Input();
DATE.Output();
DATE.Add_One_Day();
DATE.Output();
return 0;
}