#ifndef TTIME_H #define TTIME_H using namespace std; //The Time Class /////////////////////////////////////// class Time { public: Time():hh(0),mm(0),ss(0){} Time(int h, int m, int s):hh(h),mm(m),ss(s){} Time(unsigned long int s){*this = stot(s);} ~Time(){} void display() const; void incroment(){*this = stot(ttos() + 1);} int gethh() const {return hh;} int getmm() const {return mm;} int getss() const {return ss;} void sethh(int h){hh = h;} void setmm(int m){mm = m;} void setss(int s){ss = s;} void set_time(unsigned long int s){*this = stot(s);} void set_time(int h, int m, int s){ hh=h;mm=m;ss=s;} Time operator + (const Time &); Time operator - (const Time &); Time operator +=(const Time &); Time operator -=(const Time &); //Voithitikes sunartiseis metatropis unsigned long int ttos(void) const; //Time To Seconds private: Time stot(unsigned long int) const; //Seconds To Time //Eswterika Dedomena int hh,mm,ss; }; /////////////////////////////////////// void Time::display() const { if (hh < 10) cout << "0"; cout << hh << ":"; if (mm < 10) cout << "0"; cout << mm << ":"; if (ss < 10) cout << "0"; cout << ss << endl; } /*************************************/ Time Time::operator + (const Time &rt) { return stot(this->ttos() + rt.ttos()); } /*************************************/ Time Time::operator - (const Time &rt) { return stot( (3600*24 + this->ttos() ) - rt.ttos()); } /*************************************/ Time Time::operator += (const Time &t) { *this = stot(this->ttos() + t.ttos()); return *this; } /*************************************/ Time Time::operator -= (const Time &t) { *this = stot( (3600*24 + this->ttos() ) - t.ttos()); return *this; } /*************************************/ /* Voithitikes Sinartiseis Metatropes*/ /*************************************/ Time Time::stot(unsigned long int s) const { Time temp; temp.setss(s % 60); s = s / 60; temp.setmm(s % 60); temp.sethh((s / 60) % 24);// 0<=hh<24 return temp; } unsigned long int Time::ttos(void) const { unsigned long int temp; temp = ( this->gethh()*3600 + this->getmm()*60 + this->getss() ); return temp; } /////////////////////////////////////// #endif