Какова цель 61 в поле tm_sec из структуры tm

В соответствии с полем cplusplus.com, tm_sec из структуры tm принимают значения от 0 до 61 в C90 и значения от 0 до 60 в C99 и позже.

Я знаю, что 60 можно использовать для выражения второго прыжка, но как насчет другого (я имею в виду 61)? И почему они решили удалить его?

Да, я отметил это как C, так и С++, потому что в этом случае он связан с обоими языками.

Ответ 1

Диапазон от 0 до 61 допускает до 2 последовательных прыжковых секунд 31 декабря данного года, вероятно, ошибочно, потому что в годы, требующие 2 прыжковых секунды, они не добавляются в тот же день.

В более новых версиях стандарта C правильно предполагают, что в любой момент времени в любой день будет вставлен максимум один прыжок.

Как подробно объясняется в https://en.wikipedia.org/wiki/Leap_second, прыжки секунд вставляются в декабре и/или в июне, чтобы избежать дрейфа более 0,9 секунды, поэтому максимальное значение для tm_sec должно быть 60 вместо 61.