增加一个成员函数,计算加n秒的时间

发布时间 2023-04-20 23:55:57作者: PeitongShi

设置Cmytime类。

具有三个成员函数

Show()

int Set(int h,int m,int s)

对于Set函数的要求,

     1、对于非法赋值不给予执行,三个参数合法范围是:0<=h<=23,  0<=m,s<=59。 如何参数非法,本次Set函数不改变原有值。

    2、赋值成功,返回1,否则返回0。

void  AddOneSecond();

实现在原时间的基础上加1秒的时间值。

int  AddNSeconds(int n);

实现在原时间的基础上加n秒的时间值。返回值要求,如果加的n秒数,返回时间跨越了0:0:0的次数,换句话说反映了日期上进几天。

输入  23  25 38

输出:  

23:25:38

0

23:25:38

23:25:39

2

#include<iostream>
using namespace std;
class Cmytime
{
private://内部属性 
    int hour,minute,second,min_zhouqi,hour_zhouqi,day_zhouqi; 
public://对外接口 
    int Set(int h,int m,int s)
    {
        if(((h>=0)&&(h<=23))&&(m>=0)&&(s<=59))
        {
            hour=h;
            minute=m;
            second=s;
            return 1; 
        }
        else
        {
            return 0;
        }
    }
    void AddOneSecond()
    {
        second+=1;
        second%=60;
    }
    int AddNSeconds(int n)
    {
        second+=n;//加上秒数 
        min_zhouqi=second/60;//分钟需前进轮次 
        second%=60;//当前秒数 
        minute+=min_zhouqi;//加上分钟 
        hour_zhouqi=minute/60;//小时需前进轮次
        minute%=60;//当前分钟 
        hour+=hour_zhouqi;//加上小时 
        day_zhouqi=hour/24;//天数徐前进轮次
        hour%=24;//当前小时 
        return day_zhouqi;//返回天数徐前进轮次
    }
    void Show()
    {
        cout << hour << ":" << minute << ":" << second;
    }
};
//StudybarCommentBegin
int main(void) {
    int h,m,s;
   cin>>h>>m>>s;

   Cmytime t1;
   t1.Set(h,m,s);
   t1.Show();
   cout<<endl<<t1.Set(24,0,0)<<"\n";
   t1.Show();

   t1.AddNSeconds(1);
   cout<<endl;
   t1.Show();
   cout<<endl<<t1.AddNSeconds(3600*25);
  
    return 0;
}

//StudybarCommentEnd

-END