类与对象:Time类加时间

问题描述
定义一个满足如下要求的Time类。
(1)用下面的格式输出时间,每个数据占两个字符宽度,不足两个字符补零,默认为24小时 :时:分:秒
(2)可运行加时的操作,注意加时后的时间正确性,支持时、分、秒同时增加
(3)修改为12小时制,并输出修改后的时间,输出的格式为时:分:秒 AM或时:分:秒 PM;其中AM/PM为大写英文字母,且和时间间隔一个空格。

#include<iostream>
#include<iomanip>
using namespace std;
class Time {								//声明Time类 
	public:
		Time(int h=0,int m=0,int s=0):hour(h),minute(m),sec(s) {};
		void set_time();
		int add_time();
		void show_time();
	private:
		int hour;
		int minute;
		int sec;

};
void Time::set_time() {						//定义输入时间的函数 
	cout<<"请依次输入时分秒,并用空格隔开,回车结束:"<<endl;
	cin>>hour>>minute>>sec;
}
int Time::add_time() {						//定义加时间函数 
	int a,b,c;
	cout<<"请依次输入您想加的时分秒,0的部分请输0,用空格隔开:"<<endl; 
	cin>>a>>b>>c;
	hour+=a;
	minute+=b;
	sec+=c;
} 
void Time::show_time() {					//定义输出时间函数,注意输出时间的合理性及格式 
	while(hour>=24||minute>=60||sec>=60) {
		if(sec>=60) {
			minute++;
			sec-=60;
		}
		if(minute>=60) {
			hour++;
			minute-=60;
		}
		if(hour>=24) {
			hour=hour-24;
		}
	}
	
	cout<<"最终的时间是:"<<endl;
	cout<<"24小时制:" << setfill('0')<<setw(2)<<hour<<":"<<setfill('0')<<setw(2)<<minute<<":"<<setfill('0')<<setw(2)<<sec<<endl;
	cout<<"12小时制:"; 
	if(hour<=12){
		cout<<"AM "<<setfill('0')<<setw(2)<<hour<<":"<<setfill('0')<<setw(2)<<minute<<":"<<setfill('0')<<setw(2)<<sec<<" ";
	}
	if(hour>12){
		hour-=12;
		cout<<"PM "<<setfill('0')<<setw(2)<<hour<<":"<<setfill('0')<<setw(2)<<minute<<":"<<setfill('0')<<setw(2)<<sec<<" ";
	}
	
}
int main() {
	Time t1;
	t1.set_time() ;
	t1.add_time() ;
	t1.show_time() ;
	return 0;
}

输入示例

请依次输入时分秒,并用空格隔开,回车结束:
12 6 3
请依次输入您想加的时分秒,0的部分请输0,用空格隔开:
9 6 4

输出示例

最终的时间是:
24小时制:21:12:07
12小时制:PM 09:12:07

菜鸟一枚,欢迎指导

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值