00001 #ifndef DATETIME_H
00002 #define DATETIME_H
00003
00004 #include <iostream>
00005 #include <string>
00006 #include <stdexcept>
00007
00008 using namespace std;
00009
00018 class DateTime
00019 {
00020
00021 friend ostream& operator<<( ostream& out, const DateTime& dt );
00022 friend istream& operator>>( istream& in, DateTime& dt ) throw ( invalid_argument );
00023
00024 public:
00025 DateTime();
00026 DateTime( int mm, int dd, int yy, int h, int m, string period ) throw ( invalid_argument );
00027 void setDate( int mm, int dd, int yy ) throw ( invalid_argument );
00028 void setTime( int h, int m, string period ) throw ( invalid_argument );
00029 void print( ostream& out = cout ) const;
00030 bool operator==( const DateTime& dt ) const;
00031 bool operator!=( const DateTime& dt ) const;
00032 bool operator<( const DateTime& dt ) const;
00033 bool operator>( const DateTime& dt ) const;
00034
00035 private:
00037 int mm;
00039 int dd;
00041 int yy;
00043 int h;
00045 int m;
00047 string period;
00048
00049 };
00050
00051 #endif