    001: #include <iostream>
    002: #include <iomanip>
    003: #include <string>
    004:
    005: using namespace std;
    006:
    007: #include "ccc_time.h"
    008:
    009: class Clock
    010: {
    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);
    017:
    018:    /**
    019:       Gets the location of this clock.
    020:       @return the location
    021:    */
    022:    string get_location() const;
    023:
    024:    /**
    025:       Gets the hours of this clock.
    026:       @return the hours, in military or am/pm format
    027:    */
    028:    int get_hours() const;
    029:
    030:    /**
    031:       Gets the minutes of this clock.
    032:       @return the minutes
    033:    */
    034:    int get_minutes() const;
    035:
    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: {
    047:    military = use_military;
    048: }
    049:
    050: string Clock::get_location() const
    051: {
    052:    return "Local";
    053: }
    054:
    055: int Clock::get_hours() const
    056: {
    057:    Time now;
    058:    int hours = now.get_hours();
    059:    if (military) return hours;
    060:    if (hours == 0)
    061:       return 12;
    062:    else if (hours > 12)
    063:       return hours - 12;
    064:    else
    065:       return hours;
    066: }
    067:
    068: int Clock::get_minutes() const
    069: {
    070:    Time now;
    071:    return now.get_minutes();
    072: }
    073:
    074: bool Clock::is_military() const
    075: {
    076:    return military;
    077: }
    078:
    079: int main()
    080: {
    081:    Clock clock1(true);
    082:    Clock clock2(false);
    083:
    084:    bool more = true;
    085:    while (more)
    086:    {
    087:       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: }
    105: