Я хочу начать кодирование на с ++. Я пытался кодировать класс «Время» с аргументами 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