결과는 10:80:00인데, 이는 우리가 원하는 것이 아니다. 여기서 add_time 함수는 분이나 초가 60을 넘을 때를 다루지 않는 문제가 있다. 60이 넘으면 초과한 초를 분 단위로 “올리기”를 해야 하고, 초과한 분을 시간 단위로 “올리기”를 해야 한다.
다음은 개선한 버전이다.
def add_time(t1, t2):
sum = Time()
sum.hour = t1.hour + t2.hour
sum.minute = t1.minute + t2.minute
sum.second = t1.second + t2.second
if sum.second >= 60:
sum.second -= 60
sum.minute += 1
if sum.minute >= 60:
sum.minute -= 60
sum.hour += 1
return sum
이 함수는 올바르게 동작하지만, 이는 시작일 뿐이다. 이후에 더 짧은 버전도 살펴볼 것이다.