// using dev c++ under winxp
#include <iostream>
#include <cstdlib>
using namespace std; //standard c++ style about namespace
//define adt time
class time
{
public:
time(); //default constructor
void settime(int,int,int);//set time for hours,minutes,seconds
void printmilitary(void);//print time using army's style
void printstandard(void);//print time using standart style
private:
int hour; //0-23
int minute;//0-59
int second;//0-59
};
//constructor time() initionalize every variable to 0
time::time(void)
{
hour=minute=second=0;
}
//set time
void time::settime(int h,int m,int s)
{
hour=(h>=0&&h<24)?h:0;
minute=(m>=0&&m<=59)?m:0;
second=(s>=0&&s<=59)?s:0;
}
//print using army's style
void time::printmilitary(void)
{
cout<<(hour<10?"0":"")<<hour<<":"
<<(minute<10?"0":"")<<minute<<":"
<<(second<10?"0":"")<<second<<endl;
}
//print using standard style
void time::printstandard(void)
{
cout<<((hour==0||hour==12)?12:hour%12)<<":"
<<(minute<10?"0":"")<<minute<<":"
<<(second<10?"0":"")<<second
<<(hour<12?"am":"pm")<<endl;
}
//testing for simple class time
int main(void)
{
time t;
cout<<"the initial military time is:";
t.printmilitary();
cout<<"\nthe initial standard time is:";
t.printstandard();
t.settime(13,27,6);
cout<<"\n\nmilitary time after set time is:";
t.printmilitary();
cout<<"\n\nstandard time after set time is:";
t.printstandard();
t.settime(99,99,99);
cout<<"\n\nafter attempting invalid settings:\n"
<<"military time is:";
t.printmilitary();
cout<<"standard time is:";
t.printstandard();
cout<<endl;
system("pause");
return(0);
}