## 完善中Date类的定义。要求增加成员函数实现:
⑴
能比较两个日期的大小(重载“= =”、“>”、“<”、“>=”、“<=”、“!=”);
⑵
编写main( )函数测试,内容自定。
提示:两个日期比较,先比较年、再比较月、再比较日,两个日期的年、月、日均相同才相等。
(日期类的定义存放在user_date.h中,测试程序存放在exp_806.cpp中)
```
//头文件##
#include<iostream.h>
class Date
{ private:
int year,month,day;
public:
void set_date(int y=2000,int m=1,int d=1) //对数据成员赋值
{ year=y, month=m,day=d;
}
int get_year() //返回year
{ return year;
}
int get_month() //返回month
{ return month;
}
int get_day() //返回day
{ return day;
}
friend bool operator==(Date& a,Date& b);
friend bool operator>(Date& a,Date& b);
friend bool operator<(Date& a,Date& b);
void print_date(void)
{cout<<year<<'-'<<month<<'-'<<day<<endl;
}
};
bool operator==(Date& a,Date& b)
{
if(a.year==b.year&&a.month==b.month&&a.day==b.day)
return true;
else
return false;
}
bool operator>(Date& a,Date& b)
{
if(a.year>b.year)
return true;
else
if(a.year==b.year&&a.month>b.month)
return true;
else
if(a.year==b.year&&a.month==b.month&&a.day>b.day)
return true;
else
return false;
}
bool operator<(Date& a,Date& b)
{
if(a.year<b.year)
return true;
else
if(a.year==b.year&&a.month<b.month)
return true;
else
if(a.year==b.year&&a.month==b.month&&a.day<b.day)
return true;
else
return false;
}
```
//主程序,无法直接用= > <,可用判断语句调用
```
#include<iostream.h>
#include"user_date.h"
void main()
{ Date da1,da2;
int y,m,d;
da1.set_date(2004,5,1);
cout<<"da1=:";
da1.print_date();
cout<<"year=";cin>>y;
cout<<"month=";cin>>m;
cout<<"day=";cin>>d;
cout<<"da2=:";
da2.set_date(y,m,d); //调用方法set_date(),用消息y,m,d对da2的数据成员赋值
da2.print_date();
if(da1==da2)
cout<<"da1==da2"<<endl;
if(da1>da2)
cout<<"da1>da2"<<endl;
if(da1<da2)
cout<<"da1<da2"<<endl;
}
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190623202547973.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTA3MDkyMg==,size_16,color_FFFFFF,t_70)