If you want to handle US local time, then you have to allow seconds to be between 0 and 61, inclusive. At least twice the US has had two-leap-seconds in the same year, resulting in a local time of 11:59:61. The details are probably in some POSIX spec. /r$