// timeclass3.cc #include #include using namespace std; class Time { private: int Hours; // 0 to 23 int Minutes; // 0 to 59 public: Time() { Hours = Minutes = 0; } Time(int hrs, int mins) :Hours(hrs),Minutes(mins) { TimeCheck(); } void printTime() { cout << Hours << " hours and " << Minutes << " minutes" << endl; } // do any rollovers necessary on hours or minutes void TimeCheck() { if (Minutes > 59) { Hours += Minutes / 60; Minutes = Minutes % 60; } if (Minutes < 0) { Hours -= (-Minutes / 60) + 1; Minutes = 60 - (-Minutes % 60); } if (Hours > 23) Hours = Hours % 23; if (Hours < 0) Hours = 24 - (-Hours % 24); } // + operator Time operator + (const Time &otherTime) { int newMinutes = Minutes + otherTime.Minutes; int newHours = Hours + otherTime.Hours; Time NewTime(newHours, newMinutes); return NewTime; } // - operator Time operator - (const Time &otherTime) { int newMinutes = Minutes - otherTime.Minutes; int newHours = Hours - otherTime.Hours; Time NewTime(newHours, newMinutes); return NewTime; } }; int main() { Time T1(0, 0); cout << "T1(0, 0): "; T1.printTime(); Time T2(2, 5); cout << "T2(2, 5): "; T2.printTime(); Time T3 = T1 - T2; cout << "T3 = T1-T2 = "; T3.printTime(); }