Adding two durations sounds like first-grade math. 2:45 plus 1:30 — easy, right? Then a ticket comes in: a user logged 11:45 PM → 7:15 AM and your timesheet says they worked negative 16 hours. Welcome to time arithmetic, where the obvious answer is usually wrong.
Here are six duration bugs I keep seeing in code reviews, and the mental model that makes them go away.
1. Minutes are base-60, not base-100
The number-one duration bug is treating 1:30 as the decimal 1.30. It isn't — it's 1.5 hours. If you store time as HH:MM strings and do arithmetic on the pieces without normalizing, you get garbage.
// WRONG: treats minutes like a decimal fraction






