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 April of 2026, it looks like the next leap second will be on December 31, 2047 and it will be a positive 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 April 16, 2026.

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, 2047, when I project the value of UT1−UTC to be about −0.580 seconds. Other reasonable dates for the next leap second are shown in the table below. A leap second when UT1−UTC is positive will be a negative leap second, and a leap second when UT1−UTC is negative will be a positive leap second.

Predicted values of UT1-UTC assuming no leap seconds
dateUT1-UTC in seconds
December 31, 20280.283
June 30, 20290.323
December 31, 20290.421
June 30, 20300.443
December 31, 20300.512
June 30, 20310.528
December 31, 20310.592
June 30, 20320.602
December 31, 20320.659
June 30, 20330.664
December 31, 20330.715
June 30, 20340.713
December 31, 20340.759
June 30, 20350.751
December 31, 20350.791
June 30, 20360.778
December 31, 20360.811
June 30, 20370.792
December 31, 20370.820
June 30, 20380.794
December 31, 20380.816
June 30, 20390.785
December 31, 20390.801
June 30, 20400.726
December 31, 20400.694
June 30, 20410.607
December 31, 20410.563
June 30, 20420.465
December 31, 20420.410
June 30, 20430.300
December 31, 20430.233
June 30, 2046−0.294
December 31, 2046−0.373
June 30, 2047−0.500
December 31, 2047−0.580
June 30, 2048−0.710
December 31, 2048−0.791
June 30, 2049−0.922

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”.