Уменьшите секунды, минуты и часы, используя только секунды - PullRequest
0 голосов
/ 13 ноября 2018

Я хочу начать кодирование на с ++. Я пытался кодировать класс «Время» с аргументами Time::Time(int hour, int min, int sec), используя эти аргументы.

Я пытался перегрузить оператор -=, который позволил бы мне вычесть часы, минуты и секунды из моего объекта времени.

Однако мой код не вычитает минуты и часы должным образом. Я не могу понять, как это сделать. Вот мой код,

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

когда hour = 2, min = 59, sec = 31 для времени t1

используя: t1 -= 400;

вывод: 02:53:51

Однако, когда я использую t1 -= 3600;

вывод 02:00:-29

когда это должно быть 01:59:31

...