leap seconds

Civil time is based on fixed-length atomic seconds for scientific purposes, but the Earth does not turn at a steady rate.

To keep clocks synchronized with the turning of the Earth, the International Earth Rotation and Reference Systems Service (IERS) occasionally adds one second to or removes one second from the end of a day. When a second is added it is known as a leap second.

I feel that leap seconds are a good compromise between the need of science for the length of a second to be fixed and the need of civil timekeeping for clocks that match the days and the seasons. Some people, however, feel that the burden of dealing with leap seconds is too great, and would like to abolish them. To resist this, I have developed a software package which makes dealing with leap seconds easier.

You can find the source tarball for libtime on GitHub under the ShowControl project at https://github.com/ShowControl/libtime. For RPM-based distributions of GNU/Linux such as Fedora the source RPM is at the same location and in addition the library can be installed from COPR using johnsauter / libtime. Also, the source tarball can be built from files embedded in the PDF file at “Avoid Using POSIX time_t for Telling Time”.

Because the rotation of the Earth is irregular, it is not possible to predict the next leap second far in advance. This makes for a guessing game: when will the next leap second be? At the time of this writing, in March of 2024, it looks like the next leap second will be on December 31, 2029 and it will be a negative leap second. Here is an illustration of that prediction:

In the above chart, UTC is time as measured by an atomic clock, and UT1 is the rotation of the Earth. The line shows the difference between them, with the part from 1973 to the present being the values measured and reported to the IERS, the part from the present to a year from now being the future values estimated by the IERS, and the part more than a year in the future being values projected further into the future. When a leap second is introduced the line jumps by one second. The IERS data in this chart was last updated by the IERS on March 21, 2024.

It is clear from the historical data displayed above that the IERS declares a leap second when UT1−UTC is between −0.2 and −0.7 seconds, though recently the interval has been from −0.4 to −0.7 seconds. I predict that the next leap second will be on December 31, 2029, when I project the value of UT1−UTC to be about 0.670 seconds. Other reasonable dates for the next leap second are shown in the table below.

Predicted values of UT1-UTC assuming no leap seconds
dateUT1-UTC in seconds
December 31, 20260.219
June 30, 20270.255
December 31, 20270.349
June 30, 20280.396
December 31, 20280.500
June 30, 20290.557
December 31, 20290.670
June 30, 20300.693
December 31, 20300.762
June 30, 20310.776
December 31, 20310.839
June 30, 20320.847

I predict the next leap second by running an algorithm over the UT1−UTC data as reported by the IERS or estimated using astronomical observations in the past and predictions and projections in the future. For details, including a table of leap seconds from the year −2000 to the year 2500, see “Extending Coordinated Universal Time to Dates Before 1972”.