设计一个多功能的MyTime类

版权声明:本文为博主原创文章,未经博主允许不得转载。 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的时间,数据由用户输入。

(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;
}

猜你喜欢

转载自blog.csdn.net/qq_27928585/article/details/80188805