#include class Date { public: Date(int day, int month, int year); Date(const Date &o); Date& operator=(const Date &o); ~Date(); bool operator<(const Date &o) const{ return compare(o)<0; } void add_days(int n); int compare(const Date &o) const; bool leap_year() const; int get_day() const; int get_month() const; int get_year() const; const char* day_of_week() const; const char* month_name() const; ostream& output(ostream &os) const ; private: int d; int m; int y; void fix_invalid(); int days_in_month(int month, int year) const; }; ostream& operator<<(ostream& os, const Date &d);