home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 01 / cppkurs / timeclss.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-10-02  |  2.4 KB  |  89 lines

  1. //   Anfang TIMECLSS.H  ------------------------------------
  2. //   (c) 1990 by Thole Groeneveld & toolbox
  3. //   Klassendeklaration und Inlinefunktionen
  4. //
  5. #include <iostream.h>
  6. class Time {
  7. public:
  8.     enum TimeFlag {
  9.     OK,    Overflow, Underflow
  10.     };
  11.     Time ();
  12.     Time (int, int = 0, int = 0);
  13.     Time (const Time&);
  14.     ~Time ();
  15.     void SetTo (int, int = 0, int = 0);
  16.     void SetToSysTime();
  17.     friend Time operator +  (const Time&, const Time&);
  18.     friend Time operator -  (const Time&, const Time&);
  19.     friend int  operator <  (const Time&, const Time&);
  20.     friend int  operator <= (const Time&, const Time&);
  21.     friend int  operator == (const Time&, const Time&);
  22.     friend int  operator >= (const Time&, const Time&);
  23.     friend int  operator >  (const Time&, const Time&);
  24.     friend int  operator != (const Time&, const Time&);
  25.     friend ostream& operator << (ostream&, const Time&);
  26.     friend istream& operator >> (istream&, Time&);
  27.     friend int hour (Time&);
  28.     friend int min  (Time&);
  29.     friend int sec  (Time&);
  30.     static TimeFlag CheckFlag();
  31. private:
  32.     static int CheckParam (int, int, int);
  33.     long ConvertToSeconds () const;
  34.     static TimeFlag flag;
  35.     int hour;
  36.     int min;
  37.     int sec;
  38.  };
  39.  
  40.  inline Time::Time () {
  41.     hour = min = sec = 0;
  42.  }
  43.  
  44.  inline Time::Time (const Time& t) {
  45.     hour = t.hour;
  46.     min  = t.min;
  47.     sec  = t.sec;
  48. }
  49. inline Time::~Time () {
  50. /*
  51.     cout << "Das Ende von "
  52.          << *this << endl;
  53. */
  54. }
  55. inline int operator < (const Time& t1, const Time& t2) {
  56.     return t1.ConvertToSeconds() < t2.ConvertToSeconds();
  57.  }
  58.  inline int operator <= (const Time& t1, const Time& t2) {
  59.     return t1.ConvertToSeconds() <= t2.ConvertToSeconds();
  60.  }
  61.  inline int operator == (const Time& t1, const Time& t2) {
  62.     return t1.ConvertToSeconds() == t2.ConvertToSeconds();
  63. }
  64.  inline int operator >= (const Time& t1, const Time& t2) {
  65.     return t1.ConvertToSeconds() >= t2.ConvertToSeconds();
  66. }
  67.  inline int operator > (const Time& t1, const Time& t2) {
  68.     return t1.ConvertToSeconds() > t2.ConvertToSeconds();
  69. }
  70.  inline int operator != (const Time& t1, const Time& t2) {
  71.     return t1.ConvertToSeconds() != t2.ConvertToSeconds();
  72. }
  73.  inline int hour (Time& t) {
  74.     return t.hour;
  75. }
  76.  inline int min (Time& t) {
  77.     return t.min;
  78. }
  79.  inline int sec (Time& t) {
  80.     return t.sec;
  81. }
  82.  inline long Time::ConvertToSeconds () const {
  83.     return long(hour)*3600 + long(min)*60 + long(sec);
  84. }
  85.  inline TimeFlag Time::CheckFlag() {
  86.     return flag;
  87. }
  88. // Ende TIMECLSS.H -----------------------------------------
  89.