#include using namespace std; #include "Date.h" /* ostream& operator <<(ostream &sout, const Date &d) { sout << d.GetMonth() << "/" << d.GetDay() << "/" << d.GetYear(); return sout; } */ ostream& operator <<(ostream &sout, const Date &d) { sout << d.m_month << "/" << d.m_day << "/" << d.m_year; return sout; } Date::Date() : m_month(1), m_day(1), m_year(1970) { /* body intentionally empty */ } Date::Date(int month, int day, int year) { if (month >= 1 && month <= 12) m_month = month; else cerr << "Error (Date): invalid month" << endl; if (day >= 1 && day <= 31) m_day = day; else cerr << "Error (Date): invalid day" << endl; m_year = year; } int Date::GetDay() const { return m_day; } int Date::GetYear() const { return m_year; } int Date::GetMonth() const { return m_month; } bool operator ==(const Date &d1, const Date &d2) { return( d1.GetDay() == d2.GetDay() && d1.GetMonth() == d2.GetMonth() && d1.GetYear() == d2.GetYear() ); } bool operator >(const Date &d1, const Date &d2) { if (d1.GetYear() > d2.GetYear()) return true; else if (d1.GetYear() == d2.GetYear()) { if ( d1.GetMonth() > d2.GetMonth() ) return true; else if ( d1.GetMonth() == d2.GetMonth() ) { if (d1.GetDay() > d2.GetDay() ) return true; else return false; } else return false; } else { return false; } } bool operator <(const Date &d1, const Date & d2) { return ( d2 > d1 ); } bool operator <=(const Date &d1, const Date &d2) { return ( d1 < d2 || d1 == d2 ); } bool operator >=(const Date &d1, const Date &d2) { return ( d1 > d2 || d1 == d2 ); } bool operator !=(const Date &d1, const Date &d2) { return !(d1 == d2); }