版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27928585/article/details/80188805
题目内容:
设计一个多功能的MyTime类,设计多个重载的构造函数,可以设置时间,进行时间的加减运算,按各种可能的格式(24小时制、12小时制)输出时间。
注意:
(1)请考虑设置的时间的合理性(时0-23; 分0-59;秒0-59)。
(2)12小时制中,12:00:00前为AM, 12:00:00及以后为PM
(3)加减运算的加数、减数是一个时间的长度,单位为“时、分、秒”
(4)构造函数:没参数时,设置时间为0时 0分 0秒;有参数时,设置成给定的时、分、秒。
在主函数中
(1)声明两个对象t1,t2,并通过构造函数初始化它们(t2初始化为为8:10:30)
(2)显示按12、14小时制显示t1、t2的时间。
(3)再设置t1的时间,数据由用户输入。
扫描二维码关注公众号,回复:
4364430 查看本文章
(4)再输入待加减的时间。
(5)t1加输入的时间,并按12小时和24小时制显示。
(6)t2减输入的时间,并按12小时和24小时制显示。
输入格式:
第一行为t1的时间,第二行为待加减的时间
输出格式:
显示按12、14小时制显示t1、t2的初始时间
t1加输入的待加减的时间按12小时和24小时制显示。
t2减输入的待加减的时间按12小时和24小时制显示
输入样例:
11 30 30
5 15 20
输出样例:
00:00:00 AM
00:00:00
08:10:30 AM
08:10:30
04:45:50 PM
16:45:50
02:55:10 AM
02:55:10
时间限制:500ms内存限制:32000kb
#include<iostream>
using namespace std;
class MyTime
{
private:
int hour;
int minute;
int second;
public:
MyTime()
{
hour = 0;
minute = 0;
second = 0;
}
MyTime(int _hour, int _minute, int _second)
{
hour = _hour;
minute = _minute;
second = _second;
}
void SetTime(int _hour, int _minute, int _second)
{
hour = _hour;
minute = _minute;
second = _second;
}
void addTime(int h,int m,int s)
{
hour += h;
minute += m;
second += s;
if(second>=60)
{
second = second -60;
minute = minute + 1;
}
if(minute>=60)
{
minute = minute - 60;
hour = hour + 1;
}
if(hour>=24)
{
hour = hour -24;
}
}
void reduceTime(int _h,int _m,int _s)
{
if(second<_s)
{
second += 60;
minute --;
}
if(minute<_m)
{
minute += 60;
hour --;
}
if(hour<_h)
{
hour = hour + 24;
}
hour -= _h;
minute -= _m;
second -= _s;
}
void print_12()
{
int tempHour;
hour>=12?tempHour=hour-12:tempHour=hour;
if(tempHour<10){
cout<<'0';
}
cout<<tempHour<<':';
if(minute<10){
cout<<'0';
}
cout<<minute<<':';
if(second<10){
cout<<'0';
}
cout<<second;
if(hour>12||((hour==12)&&((minute>0)||(second>0)))){
cout<<" "<<"PM"<<endl;
}else{
cout<<" "<<"AM"<<endl;
}
}
void print_24()
{
if(hour<10){
cout<<'0';
}
cout<<hour<<':';
if(minute<10){
cout<<'0';
}
cout<<minute<<':';
if(second<10){
cout<<'0';
}
cout<<second<<endl;
}
};
int main()
{
MyTime t1;
MyTime t2(8,10,30);
t1.print_12();
t1.print_24();
t2.print_12();
t2.print_24();
int h1,m1,s1,h2,m2,s2;
cin>>h1>>m1>>s1;
t1.SetTime(h1, m1, s1);
cin>>h2>>m2>>s2;
t1.addTime(h2,m2,s2);
t2.reduceTime(h2, m2, s2);
t1.print_12();
t1.print_24();
t2.print_12();
t2.print_24();
return 0;
}