求一段C++代码

来源:百度知道 编辑:UC知道 时间:2024/06/17 12:39:18
要求用class来写
要求比较输入的两个日期的前后
如,输入2009-03-01跟2008-02-03
则显示2009-03-01晚于2008-02-03
谢谢啦

#include <iostream>
#include <ostream>
using namespace std;
class Date;
int Compare( const Date& d1, const Date& d2 );
ostream &operator << ( ostream& out, const Date& d );
class Date
{
int _year, _month, _day;
public:
Date( int y, int m, int d ): _year(y), _month(m),_day(d)
{
}

friend int Compare( const Date& d1, const Date& d2 );
friend ostream &operator << ( ostream& out, const Date& d );
};

int Compare( const Date& d1, const Date& d2 )
{
int y = d1._year - d2._year;
int m = d1._month - d2._month;
int d = d1._day - d2._day;

if ( y >= 0 )
{
if ( y > 0 ) return 1;
if ( m >= 0 )
{
if ( m > 0 ) return 1;
if ( d >= 0 )
{
if ( d > 0 ) return 1;
return 0;
}
return -1;
}
}
return -1;
}

ostream &operator << ( ostream& out, const Date& d