#include <iostream>
using namespace std;
class Time
{
public:
void settime();
void showtime();
void addasec();
void addaminute();
void addahour();
void addseconds(int);
void addhours(int);
void addminutes(int);
private:
bool istime(int ,int ,int );
int hour;
int minute;
int sec;
};
void Time::settime()
{
char c1,c2;
cout<<"请输入时间(格式hh:mm:ss)";
while(1)
{
cin>>hour>>c1>>minute>>c2>>sec;
if(c1!=':'||c2!=':')
cout<<"格式输入不正确"<<endl;
else if(!istime(hour,minute,sec))
cout<<"时间非法,请重新输入"<<endl;
else
break;
}
}
void Time::showtime()
{
cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
bool Time::istime(int h,int m ,int s)
{
if(h<0||h>24||m<0||m>60||s<0||s>60)
return false;
return true;
}
inline void Time::addasec()
{
sec++;
if(sec==60)
{
minute++;
sec=0;
if(minute==60)
{
hour++;
minute=0;
if(hour>24)
{
hour=hour%24;
}
}
}
}
inline void Time::addaminute()
{
minute++;
if(minute==60)
{
hour++;
minute=0;
if(hour>24)
{
hour=hour%24;
}
}
}
inline void Time::addahour()
{
hour++;
if(hour>24){hour=hour%24;}
}
void Time::addseconds(int n)
{
sec=sec+n;
if(sec>59)
{
minute=(sec/60)+minute;
sec=sec%60;
if(minute>59)
{
int h;
h=minute/60;
minute=minute%60;
hour=hour+h;
if(hour>24)
{
hour=hour%24;
}
}
}
}
void Time::addminutes(int n)
{
minute=minute+n;
if(minute>59)
{
int h;
h=minute/60;
minute=minute%60;
hour=hour+h;
if(hour>24)
{
hour=hour%24;
}
}
}
void Time::addhours(int n)
{
hour=hour+n;
if(hour>24)
{
hour=hour%24;
}
}
int main()
{
Time t1;
t1.settime();
t1.showtime();
t1.addahour();
t1.showtime();
t1.addaminute();
t1.showtime();
t1.addasec();
t1.showtime();
t1.addseconds(5);
t1.showtime();
t1.addminutes(4);
t1.showtime();
t1.addhours(5);
t1.showtime();
return 0;
}
运行结果:
知识点总结:
学习心得: