时间换算

定义一个时间类time,内有数据成员hour,minute,second,另有成员函数:构造函数用于初始化数据成员,输出函数,运算符重载+(加号),。编写主函数:创建时间对象,再输入秒数 n,通过运算符重载+(减号),计算该时间再过 n 秒后的时间值,时间的表示形式为时:分:秒,超过 24 时从 0 时重新开始计时。

!:n可能小于0

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
class Time
{
	private:
		int hour,minute,second;
	public:
		void set(int h,int m,int s)
		{
			hour=h;minute=m;second=s;
		}
		
		void display()
		{
			cout<<"time:"<<hour<<":"<<minute<<":"<<second<<endl;
		}	
		
		friend Time operator+(Time&t,int n);
		
}; 

Time operator+(Time&t,int n)
		{
			int all=0;
			all=t.hour*3600+t.minute*60+t.second+n;//以总秒数计算
            if(all<0)
            {
                for(;;)
                {all=all+3600*24;if(all>0){break;}}
            }//n可能小于0
			int h,m,s;
			h=all/3600;
			all=all%3600;
			m=all/60;
			all=all%60;
			s=all;
			h=h%24;
			Time out;
			out.set(h,m,s);
			return out; 
			
		}
int main()
{
	int h,m,s,n=1;
	for(;;)
	{
		cin>>h>>m>>s>>n;
		if(h==0&&m==0&&s==0&&n==0){break;}
		Time t,out;
		t.set(h,m,s);
		out=t+n;
		out.display();
	 } 
	
    return 0;
}

 

posted @ 2022-05-24 19:44  墨燃云  阅读(323)  评论(0编辑  收藏  举报