Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <vector>
- #include <iomanip>
- #include <sstream>
- using namespace std;
- class Duration
- {
- private:
- int hour;
- int min;
- public:
- Duration(int hour_, int min_)
- {
- int total = hour_ * 60 + min_;
- hour = total / 60;
- min = total % 60;
- }
- int Hour() const
- {
- return hour;
- }
- int Min() const
- {
- return min;
- }
- };
- bool CompareDurations(const Duration& lhs, const Duration& rhs)
- {
- if (lhs.Hour() == rhs.Hour())
- {
- return lhs.Min() < rhs.Min();
- }
- return lhs.Hour() < rhs.Hour();
- }
- bool operator<(const Duration& lhs, const Duration& rhs)
- {
- if (lhs.Hour() == rhs.Hour())
- {
- return lhs.Min() < rhs.Min();
- }
- return lhs.Hour() < rhs.Hour();
- }
- ostream& operator<<(ostream& out, const Duration& dur)
- {
- out << setfill('0');
- out << setw(2) << dur.Hour() << ':' << setw(2) << dur.Min();
- return out;
- }
- istream& operator >> (istream& in, Duration& dur)
- {
- int hour;
- in >> hour;
- in.ignore();
- int min;
- in >> min;
- dur = Duration(hour, min); // !!!!!!!!!!!!!!!
- return in;
- }
- Duration operator+(const Duration& lhs, const Duration& rhs)
- {
- return Duration{ lhs.Hour() + rhs.Hour(),lhs.Min() + rhs.Min() };
- }
- int main()
- {
- Duration dur1{ 1,50 };
- Duration dur2{ 1,59 };
- cout << dur1 + dur2 << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement