/********************************************************************************************
ex2.cpp
Developing the military time class
********************************************************************************************/
#include <iostream>
using namespace std;
//class definition
class miltime {
public:
int hour; // 0-23
int minute; // 0-59
int second; // 0-59
};
void setup(miltime& t);
void print(const miltime& t, ostream& out = cout);
void addHour(miltime& t, const int h);
void addMinute(miltime& t, const int m);
void addSecond(miltime& t, const int s);
void main() {
miltime mtTest;
setup(mtTest);
print(mtTest);
//Add 30 seconds to it and reprint it
addSecond(mtTest, 30);
print(mtTest);
//Add 30 minutes to it and print it
addMinute(mtTest, 30);
print(mtTest);
//Add 30 hours to it and print it
addHour(mtTest, 30);
print(mtTest);
}
void addHour(miltime& t, const int h) {
t.hour = (t.hour + h) % 24;
}
void addMinute(miltime& t, const int m) {
addHour(t, (t.minute + m) / 60);
t.minute = (t.minute + m) % 60;
}
void addSecond(miltime& t, const int s) {
addMinute(t, (t.second + s)/60);
t.second = (t.second + s) % 60;
}
//------- Initialize the object
void setup(miltime& t) {
t.hour = 0;
t.minute = 0;
t.second = 0;
}
//------- Print the object in "pretty" format -------
void print(const miltime& t, ostream& out) {
if (t.hour < 10)
out << '0';
out << t.hour << ':';
if (t.minute < 10)
out << '0';
out << t.minute << ':';
if (t.second < 10)
out << '0';
out << t.second << endl;
};