mytime3.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // mytime3.cpp -- implementing Time methods
  2. #include "mytime3.h"
  3. Time::Time()
  4. {
  5. hours = minutes = 0;
  6. }
  7. Time::Time(int h, int m )
  8. {
  9. hours = h;
  10. minutes = m;
  11. }
  12. void Time::AddMin(int m)
  13. {
  14. minutes += m;
  15. hours += minutes / 60;
  16. minutes %= 60;
  17. }
  18. void Time::AddHr(int h)
  19. {
  20. hours += h;
  21. }
  22. void Time::Reset(int h, int m)
  23. {
  24. hours = h;
  25. minutes = m;
  26. }
  27. Time Time::operator+(const Time & t) const
  28. {
  29. Time sum;
  30. sum.minutes = minutes + t.minutes;
  31. sum.hours = hours + t.hours + sum.minutes / 60;
  32. sum.minutes %= 60;
  33. return sum;
  34. }
  35. Time Time::operator-(const Time & t) const
  36. {
  37. Time diff;
  38. int tot1, tot2;
  39. tot1 = t.minutes + 60 * t.hours;
  40. tot2 = minutes + 60 * hours;
  41. diff.minutes = (tot2 - tot1) % 60;
  42. diff.hours = (tot2 - tot1) / 60;
  43. return diff;
  44. }
  45. Time Time::operator*(double mult) const
  46. {
  47. Time result;
  48. long totalminutes = hours * mult * 60 + minutes * mult;
  49. result.hours = totalminutes / 60;
  50. result.minutes = totalminutes % 60;
  51. return result;
  52. }
  53. std::ostream & operator<<(std::ostream & os, const Time & t)
  54. {
  55. os << t.hours << " hours, " << t.minutes << " minutes";
  56. return os;
  57. }