#include<iostream>
using namespace std;
class Time{
public:
Time(int=0,int=0,int=0);
void show_time();
void add_sends(int);
void add_minutes(int);
void add_hours(int);
static void change24();
static void changefrome0();
private:
static bool is_24;
static bool from0;
int hour;
int minute;
int sec;
};
int main(){
Time t1(23,14,25),t2(8,5,6);
int n;
cout<<"24小时制,不前导0"<<endl;
cout<<"t1是";
t1.show_time();
cout<<endl;
cout<<"t2是";
t2.show_time();
cout<<endl;
cout<<"请输入你要加的时间";
cin>>n;
cout<<n<<"小时后,切换是否前导0"<<endl;
t1.add_hours(n);
t2.add_hours(n);
t1.changefrome0();
t2.changefrome0();
cout<<"t1是";
t1.show_time();
cout<<endl;
cout<<"t2是";
t2.show_time();
cout<<endl;
cout<<"换一种制式:"<<endl;
t1.changefrome0();
t1.change24();
t2.changefrome0();
t2.change24();
cout<<"t1是";
t1.show_time();
cout<<endl;
cout<<"t2是";
t2.show_time();
cout<<endl;
return 0;
}
bool Time::is_24=true;
bool Time::from0=false;
Time::Time(int h,int m,int s){
hour=h;
minute=m;
sec=s;
}
void Time::show_time(){
if(hour>24){
cout<<"超时了";
}else{
if(is_24==true && from0==false)
cout<<hour<<":"<<minute<<":"<<sec<<endl;
else if(is_24 && from0)
{
if(hour<10 && minute>10 && sec>10)
cout<<"0"<<hour<<":"<<minute<<":"<<sec<<endl;
else if(hour>=10 && minute<10 && sec>10)
cout<<hour<<":"<<"0"<<minute<<":"<<sec<<endl;
else if(hour>=10 && minute>=10 && sec<10)
cout<<hour<<":"<<minute<<": 0"<<sec<<endl;
else if(hour<10 && minute<10 && sec<10)
cout<<"0"<<hour<<": 0"<<minute<<": 0"<<sec<<endl;
else if(hour<10 && minute<10 && sec>=10)
cout<<"0"<<hour<<": 0"<<minute<<": "<<sec<<endl;
else if(hour>=10 && minute<10 && sec<10)
cout<<hour<<": 0"<<minute<<": 0"<<sec<<endl;
else if(hour<10 && minute>=10 && sec<10)
cout<<"0"<<hour<<":"<<minute<<": 0"<<sec<<endl;
else
cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
else if(is_24==false && from0==true){
if(hour>12){
if(hour==13){
hour=1;
}
else if(hour==14){
hour=2;
}
else if(hour==15){
hour=3;
}
else if(hour==16){
hour=4;
}
else if(hour==17){
hour=5;
}
else if(hour==18){
hour=6;
}
else if(hour==19){
hour=7;
}
else if(hour==20){
hour=8;
}
else if(hour==21){
hour=9;
}
else if(hour==22){
hour=10;
}
else if(hour==23){
hour=11;
}
else if(hour==24){
hour=12;
}
if(hour<10){
if(minute<10 && sec>10)
cout<<"0"<<hour<<":"<<"0"<<minute<<":"<<sec<<" pm"<<endl;
else if(minute>10 && sec<10)
cout<<"0"<<hour<<":"<<minute<<": 0"<<sec<<" pm"<<endl;
else if(minute<10 && sec<10)
cout<<"0"<<hour<<":"<<"0"<<minute<<": 0"<<sec<<" pm"<<endl;
else
cout<<"0"<<hour<<":"<<minute<<":"<<sec<<" pm"<<endl;
}else{
if(minute<10 && sec>10)
cout<<hour<<":"<<"0"<<minute<<":"<<sec<<" pm"<<endl;
else if(minute>10 && sec<10)
cout<<hour<<":"<<minute<<": 0"<<sec<<" pm"<<endl;
else if(minute<10 && sec<10)
cout<<hour<<":"<<"0"<<minute<<": 0"<<sec<<" pm"<<endl;
else
cout<<hour<<":"<<minute<<":"<<sec<<" pm"<<endl;
}
}else{
if(hour<10){
if(minute<10 && sec>10)
cout<<"0"<<hour<<":"<<"0"<<minute<<":"<<sec<<" pm"<<endl;
else if(minute>10 && sec<10)
cout<<"0"<<hour<<":"<<minute<<": 0"<<sec<<" am"<<endl;
else if(minute<10 && sec<10)
cout<<"0"<<hour<<":"<<"0"<<minute<<": 0"<<sec<<" am"<<endl;
else
cout<<"0"<<hour<<":"<<minute<<":"<<sec<<" am"<<endl;
}else{
if(minute<10 && sec>10)
cout<<hour<<":"<<"0"<<minute<<":"<<sec<<" am"<<endl;
else if(minute>10 && sec<10)
cout<<hour<<":"<<minute<<": 0"<<sec<<" am"<<endl;
else if(minute<10 && sec<10)
cout<<hour<<":"<<"0"<<minute<<": 0"<<sec<<" am"<<endl;
else
cout<<hour<<":"<<minute<<":"<<sec<<" am"<<endl;
}
}
}
else{
if(hour==13){
hour=1;
}
else if(hour==14){
hour=2;
}
else if(hour==15){
hour=3;
}
else if(hour==16){
hour=4;
}
else if(hour==17){
hour=5;
}
else if(hour==18){
hour=6;
}
else if(hour==19){
hour=7;
}
else if(hour==20){
hour=8;
}
else if(hour==21){
hour=9;
}
else if(hour==22){
hour=10;
}
else if(hour==23){
hour=11;
}
else if(hour==24){
hour=12;
}
cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
}
}
void Time::changefrome0(){
from0=true;
}
void Time::change24(){
is_24=false;
}
void Time::add_hours(int n){
hour+=n;
}
void Time::add_minutes(int n){
minute+=n;
}
void Time::add_sends(int n){
sec+=n;
}