001: #include <iostream>
002: #include <iomanip>
003: #include <string>
005: using namespace std;
006: 
007: #include "ccc_time.h"
008: 
009: class Clock {
011: public:
012:    /**
013:       Constructs a clock that can tell the local time.
014:       @param use_military true if the clock uses military format
015:    */
016:    Clock(bool use_military);
018:    /**
019:       Gets the location of this clock.
020:       @return the location
021:    */
022:    string get_location() const;
024:    /**
025:       Gets the hours of this clock.
026:       @return the hours, in military or am/pm format
027:    */
028:    int get_hours() const;
030:    /**
031:       Gets the minutes of this clock.
032:       @return the minutes
033:    */
034:    int get_minutes() const;
036:    /**
037:       Checks whether this clock uses miltary format.
038:       @return true if miltary format
039:    */
040:    bool is_military() const;
041: private:
042:    bool military;
043: };
044: 
045: Clock::Clock(bool use_military)
046: { military = use_military;  }
049: 
050: string Clock::get_location() const
051: { return "Local";  }
054: 
055: int Clock::get_hours() const
056: { Time now;
058:   int hours = now.get_hours();
059:   if (military) return hours;
060:   if (hours == 0) return 12;
062:   else if (hours > 12) return hours - 12;
064:   else return hours;
066: }
067: 
068: int Clock::get_minutes() const
069: { Time now;
071:   return now.get_minutes();
072: }
073: 
074: bool Clock::is_military() const
075: { return military; }
078: 
079: int main()
080: { Clock clock1(true);
082:   Clock clock2(false);
083: 
084:   bool more = true;
085:   while (more)
086:   { cout << "Military time: "
088:          << clock1.get_hours() << ":"
089:          << setw(2) << setfill('0') 
090: << clock1.get_minutes()
091: << setfill(' ') << "\n"; 092: cout << "am/pm time: " 093: << clock2.get_hours() << ":" 094: << setw(2) << setfill('0')
095: << clock2.get_minutes()
096: << setfill(' ') << "\n"; 097: 098: cout << "Try again? (y/n) "; 099: string input; 100: getline(cin, input); 101: if (input != "y") more = false; 102: } 103: return 0; 104: }