Hacker News new | ask | show | jobs
by dingaling 2002 days ago
> Any sensible time handling solution will truncate instead of rounding.

That doesn't really work for a countdown timer though since the last second would then display as zero, which is nonsense for 'time remaining'. You have to round up, always.

The Android 9 countdown works intuitively, it takes a second to decrement from 5 to 4 and sounds the alarm exactly at 0. You can't pause it at zero...

> Which is not to call apple's timer nonsensical.

It pretty much is, since the last 'second' takes more than a second to elapse.

1 comments

I'll rewrite parent's statement to apply to timers and stopwatches:

> Any sensible time handling solution will round off toward the starting value.

So a stopwatch won't display "1" until a full second has elapsed, and will look like this for five seconds: "0...1...2...3...4...5!"

A timer won't display "4" until a full second has elapsed, and will look like this: "5...4...3...2...1...0!"

In the stopwatch case, the display shows "0" for 0.999 s; in the timer case it'll show "1" for 0.999 s.

But this highlights the difference between the two devices, stopwatches and timers.

A stopwatch counts up. Therefore, it makes sense to use the floor (4.99 is still "4", not yet "5").

A timer counts down. Therefore, it makes sense to use the ceiling (3.01 is still "4", not yet "3").

In fact this was a turning point in the original article: "rounding down . . . makes a lot of sense when counting up. . . . But for a countdown timer, this is counterintuitive."

Yup, that was my motivation for rewriting the parent statement. Abstracting away the type of counter and just saying, "show the number only when you crossed it" basically.
Sorry. First, I thought that you set out to contradict, rather than agree with, the person you replied to (since that is common). Then I was thrown off by your topic sentence, which seemed to lump together the two devices ("timers and stopwatches"). At this point, I think my reading accelerated to highway speeds and totally botched parsing the rest ;)