01: #include <iostream>
02: #include <iomanip>
04: using namespace std;
05:
06: #include "ccc_time.h"
08: /**
09: Compute the number of seconds between two points in time.
10: @param a a point in time
11: @param b another point in time
12: @return the number of seconds that a is away from b
13: */
14: int operator-(Time a, Time b)
15: { return a.seconds_from(b); }
18:
19: /**
20: Compute a point in time that is some number of seconds away.
21: @param a a point in time
22: @param sec the seconds to add
23: @return a point in time that is sec seconds away from a
24: */
25: Time operator+(Time a, int sec)
26: { Time r = a;
28: r.add_seconds(sec);
29: return r;
30: }
31:
32: /**
33: Compare two points in time.
34: @param a a point in time
35: @param b another point in time
36: @return true if they are the same
37: */
38: bool operator==(Time a, Time b)
39: { return a.seconds_from(b) == 0; }
42:
43: /**
44: Compare two points in time.
45: @param a a point in time
46: @param b another point in time
47: @return true if they are the different
48: */
49: bool operator!=(Time a, Time b)
50: { return a.seconds_from(b) != 0; }
53:
54: /**
55: Print a Time object
56: @param out an output stream
57: @param a a point in time
58: @return out
59: */
60: ostream& operator<<(ostream& out, Time a)
61: { out << a.get_hours() << ":"
63: << setw(2) << setfill('0')
64: << a.get_minutes() << ":"
65: << setw(2) << a.get_seconds() << setfill(' ');
66: return out;
67: }
68:
69: int main()
70: { Time now;
72: cout << "Now it is " << now << "\n";
73: Time later = now + 1000;
74: cout << "A thousand seconds later it is " << later << "\n";
75: Time now2;
76: if (now == now2) cout << "It still is " << now2 << "\n";
78: if (now != now2) cout << "It is already " << now2 << "\n";
80: cout << "Another " << later - now2
81: << " seconds until " << later << "\n";
82: return 0;
83: }
84: