#include<iostream.h>
class Date{
private:
double year,month,day;
public:
Date(double y=0,double m=0,double d=0):year(y),month(m),day(d){};
Date operator+(Date b); //重载运算符+
Date operator-(Date b); //重载运算符-
friend ostream &operator<<(ostream &os,Date &s);//重载流运算符<<
friend istream &operator>>(istream &is,Date &s);//重载流运算符>>
void Show();
};
Date Date::operator+(Date b){
if((day+b.day)>31){
month++;
int dd=day+b.day-31;
return Date(year,month,dd);
}
else
return Date(year,month,day+b.day);
}
Date Date::operator-(Date b){
if(day-b.day<=0){
month--;
int dd=day-b.day+30;
return Date(year,month,dd);
}
else
return Date(year,month,day-b.day);
}
void Date::Show(){
cout<<year<<"-"<<month<<"-"<<day<<endl;
}
ostream& operator<<(ostream &os,Date &s){
os<<s.year<<"\t";
os<<s.month<<"\t";
os<<s.day<<"\t"<<endl;
return os;
}
istream &operator>>(istream &is,Date &s){
cout<<"按顺序输入年 月 日"<<endl;
is>>s.year;
is>>s.month;
is>>s.day;
cout<<endl;
return is;
}
void main(){
Date t1(2013,10,11),t2(0,0,25),t3,t4;
t1.Show();
t3=t1+t2;
t4=t1-t2;
t3.Show();
t4.Show();
cin>>t1;
cout<<t1;
}