仅需几秒钟即可减少秒,分钟和小时

时间:2018-11-13 00:06:26

标签: c++ time operator-overloading arithmetic-expressions

我想开始用C ++进行编码。我正尝试使用这些参数为参数Time::Time(int hour, int min, int sec)编写类“ Time”。

我试图重载-=运算符,该运算符使我可以从时间对象中减去小时,分钟和秒。

但是,我的代码似乎没有正确减去分钟和小时。我似乎不知道该怎么做。这是我的代码,

    Time& Time::operator-=(unsigned int n)
    { sec -= n;
      if (sec < 0)
      { min += sec/60;
        sec %= 60;
        if (min >=60)
         { hour = (hour + min/60) % 24;
            min %= 60;
            }
           }
          return *this;
            }

在时间t1的hour = 2min = 59sec = 31

使用:t1 -= 400;

输出为:02:53:51

但是,当我使用t1 -= 3600;

输出为02:00:-29

应为01:59:31

0 个答案:

没有答案