YTU 2980: 几点了

2980: 几点了

时间限制: 1 Sec  内存限制: 128 MB
提交: 37  解决: 9

题目描述

现有一个Time类可以用来记录时间,请输出Time记录的时间加上s秒后的时间。

只需提交补充部分。

请用C++方式提交

#include <iostream>
using namespace std;
class Time
{
public:
    Time(){};
    Time(int ,int ,int);
    void display();
    Time operator+(int s);
private:
    int hour;
    int minute;
    int second;
};
Time::Time(int h,int m,int s):hour(h),minute(m),second(s){};
void Time::display()
{
    cout<<hour<<":"<<minute<<":"<<second<<endl;
}
Time Time::operator+(int s)
{
    /*
    补充部分
    */
}
int main()
{
    int hour,minute,second;
    int sec;
    cin>>hour>>minute>>second;
    cin>>sec;
    Time t(hour,minute,second);
    t=t+sec;
    t.display();
    return 0;
}

输入

第一行:小时(hour,0~23),分钟(minute,0~59),秒(second,0~59),以空格隔开
第二行:要加的秒数,sec(>=0)

输出

加完后的时间,格式为:
hour:minute:second

样例输入

23 59 59
2

样例输出

0:0:1

你  离  开  了  ,  我  的  世  界  里  只  剩  下  雨  。  。  。

#include <iostream>
using namespace std;
class Time
{
public:
    Time() {};
    Time(int ,int ,int);
    void display();
    Time operator+(int s);
private:
    int hour;
    int minute;
    int second;
};
Time::Time(int h,int m,int s):hour(h),minute(m),second(s) {};
void Time::display()
{
    cout<<hour<<":"<<minute<<":"<<second<<endl;
}
Time Time::operator+(int s)
{
    Time t;
    t.hour=hour,t.minute=minute,t.second=second;
    t.second+=s;
    if(t.second>=60)
    {
        t.minute+=t.second/60;
        t.second%=60;
        if(t.minute>=60)
        {
            t.hour+=t.minute/60;
            t.minute%=60;
            t.hour%=24;
        }
    }
    return t;
}
int main()
{
    int hour,minute,second;
    int sec;
    cin>>hour>>minute>>second;
    cin>>sec;
    Time t(hour,minute,second);
    t=t+sec;
    t.display();
    return 0;
}

原文地址:https://www.cnblogs.com/im0qianqian/p/5989643.html