Почему не правильно работает сумма на определенном значении?
Пишу класс Time. На вход подается время в секундах и затем получается итоговое время dd:hh:mm:ss. Перезагрузил оператор + для суммы двух времен. По итогу на значение 200 000 секунд не правильно работает (вместо 4 дней выводит 0), на остальных, которые проверял, выводит правильно. В чем ошибка?
Перегрузка:
TimeSpan operator+(const TimeSpan &t1, const TimeSpan &t2) {
TimeSpan sumTime;
sumTime.days = t1.days + t2.days;
//std::cout << t1.days << " " << t2.days << " " << sumTime.days << std::endl;
if(t1.hours + t2.hours > 24) {
sumTime.days++;
std::cout << sumTime.days << std::endl;
sumTime.hours = t1.hours + t2.hours - 24;
} else
sumTime = t1.hours + t2.hours;
if (t1.minutes + t2.minutes > 60) {
sumTime.hours++;
sumTime.minutes = t1.minutes + t2.minutes - 60;
} else
sumTime.minutes = t1.minutes + t2.minutes;
if (t1.seconds + t2.seconds > 60) {
sumTime.minutes++;
sumTime.minutes = t1.seconds + t2.seconds - 60;
} else
sumTime.seconds = t1.seconds + t2.seconds;
return sumTime;
}
main.cpp
lab1::TimeSpan Time = TimeSpan(200000);
lab1::TimeSpan Time2 = TimeSpan(200000);
lab1::TimeSpan Res;
Res = Time + Time2;
int days = Res.getDays();
std::cout << days << std::endl; //trash days = 0