// Time class // Version 1.3 // // New in this version: get/set methods. #include using std::cout; using std::cin; using std::istream; using std::ostream; class Time { public: Time() : Time(99, 99) {} Time(int h) : Time(h, 0) {} Time(int h, int m) : hours_(h), minutes_(m) {} void read(istream & in); void print(ostream & out) const; double minus(const Time & t2) const; int hours() const { return hours_; } int minutes() const { return minutes_; } void set_hours(int new_hours) { hours_ = new_hours; } void set_minutes(int new_minutes) { minutes_ = new_minutes; } void set(int new_hours, int new_minutes = 0); private: int hours_; int minutes_; }; inline void Time::read(istream & in) { in >> hours_; in.get(); // colon in >> minutes_; } inline void Time::print(ostream & out) const { out << hours_ << ':'; if ( minutes_ < 10 ) out << '0'; out << minutes_; } inline double Time::minus(const Time & t2) const { return (hours_ + minutes_/60.0) - (t2.hours_ + t2.minutes_/60.0); } inline void Time::set(int new_hours, int new_minutes) { hours_ = new_hours; minutes_ = new_minutes; } void println(const Time & t, ostream & out) { t.print(out); out << '\n'; } void print_with_h(const Time & t, ostream & out) { out << t.hours() << 'h'; if (t.minutes() < 10) out << '0'; out << t.minutes(); } int main() { Time t(12,41); print_with_h(t, cout); cout << '\n'; // t = Time(t.hours(), 45); t.set_minutes(45); println(t, cout); t.set_hours(13); println(t, cout); t.set(11,30); println(t, cout); t.set(12); println(t, cout); return 0; }