描述
给定日期类的声明
class Date{
public:
Date(int d = 0, int m = 0, int y = 0); //构造函数
int get_day() const; // 返回day
int get_month() const; //返回month
int get_year() const; // 返回year
static void set_default(int, int, int);
static int get_default_day(); //返回缺省day
static int get_default_month(); //返回缺省month
static int get_default_year(); //返回缺省year
Date & add_year(int n); //加n年
Date & add_month(int n); //加n月,考虑超过12月,考虑闰年
Date & add_day(int n); //加n天,考虑进位月和年,考虑闰年
private:
int day, month, year;
static Date default_date; //初始化为 1901年1月1日
};
实现这个类并用以下的main函数测试它。
int main(){
char type[110];
int day,mon,year;
int addday,addmon,addyear;
while(cin>>type){
if(strcmp(type,"Date") == 0){
cin>>day>>mon>>year;
Date mydate(day,mon,year);
cin>>addday>>addmon>>addyear;
mydate.add_day(addday).add_month(addmon).add_year(addyear);
cout << mydate.get_day() << " " << mydate.get_month() << " " << mydate.get_year() << endl;
}else if(strcmp(type,"defalutDate") == 0){
cout << Date::get_default_day() << " " << Date::get_default_month() << " " << Date::get_default_year() << endl;
}else if(strcmp(type,"setdefaultDate") == 0){
cin>>day>>mon>>year;
Date::set_default(day,mon,year);
cout << Date::get_default_day() << " " << Date::get_default_month() << " " << Date::get_default_year() << endl;
}
}
return 0;
}
输入
多组输入,每一组输入以一个 type来判断输入类型,如果是'Date',那么就输入当前设置的日期以及要加的天数;如果是'defaultDate',那么就是直接输出默认日期;如果是'setdefaultDate',那么就输入要设置的默认日期。
输出
输出计算后得到的日期。