At 06:12 PM 7/16/2005, Bill Hawkins wrote...
>Um, would you care to point out the more serious bugs?
>
>Bill
The UTC time sequence with your code would go (at the 1 second interrupts):
23:59:59.0
23:59:59.0
00:00:00.0
Leading to ambiguous (duplicated) timestamps. The correct solution is closer to:
Disable interrupts;
...
If (UTC is [last day of any month] 23:59:59 || leap second is negative) {
UTC = [next day] 00:00:00;
Clear leap second }
If (UTC is 1 [any month] 00:00:00) || leap second is positive) {
UTC = [prior day] 23:59:60;
Clear leap second }
Which of course requires applications and the clock itself to be able to handle
23:59:60 (which is a legitimate time in UTC). Routines which calculate time
intervals also require that a table be kept of when leap seconds occur, so they
can be accounted for.
_______________________________________________
time-nuts mailing list
[email protected]
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts