Дракон из зажопинска.
В декабре узнал о прибавке дополнительной секунды в конце года. Ради интереса решили проверить, знают ли об этом часы на компе. Как оказалось, знают. Правда, 60-ю секунду отображать не умеют. Для проверки ближе к 0 часам ввели команду:
while {true} {date; sleep 1}
При этом результат выглядел так:
...
2008-12-31 23:59:55
2008-12-31 23:59:56
2008-12-31 23:59:57
2008-12-31 23:59:58
2008-12-31 23:59:59
2008-12-31 23:59:59
2009-01-01 00:00:00
2009-01-01 00:00:01
2009-01-01 00:00:02
2009-01-01 00:00:03
2009-01-01 00:00:04
...
while {true} {date; sleep 1}
При этом результат выглядел так:
...
2008-12-31 23:59:55
2008-12-31 23:59:56
2008-12-31 23:59:57
2008-12-31 23:59:58
2008-12-31 23:59:59
2008-12-31 23:59:59
2009-01-01 00:00:00
2009-01-01 00:00:01
2009-01-01 00:00:02
2009-01-01 00:00:03
2009-01-01 00:00:04
...
Это виндовсовские часы? Такие переходы закладываются в алгоритмах часов? Если так, то на сколько лет вперёд заложены подобные корректировки? Или эти корректировки периодичны?
Что там с виндовскими часами и умеют ли они выводить что-то ещё, кроме синих экранов, не знаю, не проверял. Кто-нибудь из виндузятников пробовал наблюдать это дело?
А вот у наших часов такая фишка оказывается есть. Правда, является ли она заранее запрограммированной, или это как-то заранее сообщается сервером точного времени, с которым периодически производится синхронизация, не в курсе. На штатную опцию прибавки тоже не похоже, как я понял, оно не каждый год прибавляется. В общем, не знаю откуда берётся и где заложено
Дак у вас синхронизация с часами какого-то сайта? Ну тогда всё понятно.
Я тогда вообще не понимаю, почему у вас возникла такая заинтересованность.
Известна той программе, которая управляет часами и синхронизирует их с сервером.
Во-первых, как я понял, постоянной информации о прибавляемых секундах нет и она действительно передаётся заранее с сервера синхронизации (с опережением в несколько месяцев). Во-вторых, это штатная опция часов, то есть получив эту информацию, они её в нужное время отрабатывают.
Теперь что касается самих часов. Вообще, линуксовые часы не делают никаких скачков времени для коррекции, это недопустимо, так как возможны ошибки в программах, чувствительных к непрерывности времени. Поэтому часы, получив информацию о коррекции не пытаются тупо переставить время, а изменяют скорость хода, ускоряясь или замедляясь, пока не выполнится коррекция.
Ну и что касается дополнительной секунды, вот тут есть статья на эту тему, там же сказано про системные часы в ОС:
Linux kernels and most other Unix-like systems care about the leap seconds and handle them correctly. Some systems even add a notification to the system log when the leap second is inserted.
Ну и разумеется:
The Windows system clock does not know about leap seconds
Кстати, это правда, что Микрософт для своей последней версии системы выпустила новый стандарт клавы, содержащий кнопки левого и правого ресета, как наиболее частоиспользуемые?