#ifndef DATE_H #define DATE_H #include <iostream> /* * egy egyszerű dátum típus * * egy bonyolulthoz lásd: * http://www3.sympatico.ca/date4cpp/index.html * */ class date { public: /* konstruktorok */ date( int y=2000, int m=1, int d=1) { set( y, m, d); } date( const char *s); /* lekérdezések */ int get_year() const { return year; } int get_month() const { return month; } int get_day() const { return day; } /* módosító műveletek */ date& set_year( int y) { year = y; return *this; } date& set_month( int m) { month = m; return *this; } date& set_day( int d) { day = d; return *this; } date& next(); date& add( int n); /* operátorok */ date& operator++() { return next(); } date operator++(int) { date curr(*this); next(); return curr; }; date& operator+=( int n) { return add(n); } /* beolvasás - kivitel */ void get( std::istream& is); void put( std::ostream& os) const; private: /* segéd-függvények */ void set( int y, int m, int d) { /* TODO: ellenőrzések */ year = y; month = m; day = d; } /* adattagok */ int year; int month; int day; }; /* globális műveletek az osztályon */ bool operator<( date d1, date d2); inline bool operator==( date d1, date d2) { return !(d1<d2 || d2<d1); } inline bool operator!=( date d1, date d2) { return d1<d2 || d2<d1; } inline bool operator<=( date d1, date d2) { return !(d2<d1); } inline bool operator>=( date d1, date d2) { return !(d1<d2); } inline bool operator>( date d1, date d2) { return d2<d1; } /* beolvasó és kiíró operátor */ std::istream& operator>>( std::istream& is, date& d); std::ostream& operator<<( std::ostream& os, const date &d); #endif /* DATE_H */