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: