下一秒的时间++重载
实现时间下一秒的时间
时间 + 秒数 得到 时间
样例输入 23 15 1
66
样例输出 23:15:01
23:15:02
23:16:08
样例输入 23 58 0 120
样例输出 23:58:00
23:58:01
00:00:01
void Time::printTime()
{
cout<<setfill('0')<<setw(2)<<hour
<<":"<<setw(2)<<minute<<":"
<<setw(2)<<second<<endl;
}
class Time { private: int hour,minute,second; public: Time(int h=0,int m=0,int s=0);//构造函数,设默认值 void setTime(int h,int m,int s); Time operator++();//++单目运算符重载,这里是0个参数 friend Time operator+(int increase,Time &t);//定义为友元 void printTime(); }; Time::Time(int h,int m,int s) { hour=h; minute=m; second=s; } void Time::setTime(int h,int m,int s) { hour=h; minute=m; second=s; } void Time::printTime() { cout<<setfill('0')<<setw(2)<<hour<<":"<<setw(2)<<minute<<":"<<setw(2)<<second<<endl; } Time Time::operator++()//返回类的,一般需要在成员函数内实例化;注意先自加,再赋值 { Time t2; second+=1; t2.hour=hour; t2.minute=minute; t2.second=second; return t2; } Time operator+(int increase,Time &t1)//可看成普通函数,非类成员 { Time t3; int minute_turn,hour_turn,day_turn; t3.second=t1.second+increase;//加上秒数 minute_turn=t3.second/60;//计算多出分钟轮次 t3.second%=60;//多出秒数取余 t3.minute=t1.minute+minute_turn;//加上分钟 hour_turn=t3.minute/60;//计算多出小时轮次 t3.minute%=60;//多出分钟取余 t3.hour=t1.hour+hour_turn;//加上小时 day_turn=t3.hour/60;//计算多出天数轮次 t3.hour%=24; //多出小时取余 return t3; }
//StudybarCommentBegin #include <iostream> #include <iomanip> using std::cin; using std::cout; using std::endl; using std::setfill; using std::setw; //StudybarCommentEnd
//StudybarCommentBegin
int main()
{
int hour,minute,second;
int increase;
Time t1(23,45,0),t2,t3(t1);
cin>>hour>>minute>>second>>increase;
t1.setTime(hour,minute,second);
t1.printTime();
t2=++t1;
t2.printTime();
t3=increase+t1;
t3.printTime();
return 0;
}
//StudybarCommentEnd
-END

浙公网安备 33010602011771号