Skip to main content

deep_time/utc/
leap_seconds_list.rs

1//! Leap seconds table from the official IANA
2//! [leap-seconds.list](https://data.iana.org/time-zones/data/leap-seconds.list)
3//! Last leap second: 2017-01-01 (TAI-UTC = 37 s)
4//! File expires: 28 December 2026
5
6#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
7pub struct LeapSec {
8    pub ntp_timestamp: i64,
9    pub leap_sec_after: i64,
10    pub utc_sec: i64,
11    pub tai_sec: i64,
12}
13
14pub const LEAP_SECS: &[LeapSec] = &[
15    LeapSec {
16        ntp_timestamp: 2272060800,
17        leap_sec_after: 10,
18        utc_sec: -883656000,
19        tai_sec: -883655991,
20    }, // 1 Jan 1972
21    LeapSec {
22        ntp_timestamp: 2287785600,
23        leap_sec_after: 11,
24        utc_sec: -867931200,
25        tai_sec: -867931190,
26    }, // 1 Jul 1972
27    LeapSec {
28        ntp_timestamp: 2303683200,
29        leap_sec_after: 12,
30        utc_sec: -852033600,
31        tai_sec: -852033589,
32    }, // 1 Jan 1973
33    LeapSec {
34        ntp_timestamp: 2335219200,
35        leap_sec_after: 13,
36        utc_sec: -820497600,
37        tai_sec: -820497588,
38    }, // 1 Jan 1974
39    LeapSec {
40        ntp_timestamp: 2366755200,
41        leap_sec_after: 14,
42        utc_sec: -788961600,
43        tai_sec: -788961587,
44    }, // 1 Jan 1975
45    LeapSec {
46        ntp_timestamp: 2398291200,
47        leap_sec_after: 15,
48        utc_sec: -757425600,
49        tai_sec: -757425586,
50    }, // 1 Jan 1976
51    LeapSec {
52        ntp_timestamp: 2429913600,
53        leap_sec_after: 16,
54        utc_sec: -725803200,
55        tai_sec: -725803185,
56    }, // 1 Jan 1977
57    LeapSec {
58        ntp_timestamp: 2461449600,
59        leap_sec_after: 17,
60        utc_sec: -694267200,
61        tai_sec: -694267184,
62    }, // 1 Jan 1978
63    LeapSec {
64        ntp_timestamp: 2492985600,
65        leap_sec_after: 18,
66        utc_sec: -662731200,
67        tai_sec: -662731183,
68    }, // 1 Jan 1979
69    LeapSec {
70        ntp_timestamp: 2524521600,
71        leap_sec_after: 19,
72        utc_sec: -631195200,
73        tai_sec: -631195182,
74    }, // 1 Jan 1980
75    LeapSec {
76        ntp_timestamp: 2571782400,
77        leap_sec_after: 20,
78        utc_sec: -583934400,
79        tai_sec: -583934381,
80    }, // 1 Jul 1981
81    LeapSec {
82        ntp_timestamp: 2603318400,
83        leap_sec_after: 21,
84        utc_sec: -552398400,
85        tai_sec: -552398380,
86    }, // 1 Jul 1982
87    LeapSec {
88        ntp_timestamp: 2634854400,
89        leap_sec_after: 22,
90        utc_sec: -520862400,
91        tai_sec: -520862379,
92    }, // 1 Jul 1983
93    LeapSec {
94        ntp_timestamp: 2698012800,
95        leap_sec_after: 23,
96        utc_sec: -457704000,
97        tai_sec: -457703978,
98    }, // 1 Jul 1985
99    LeapSec {
100        ntp_timestamp: 2776982400,
101        leap_sec_after: 24,
102        utc_sec: -378734400,
103        tai_sec: -378734377,
104    }, // 1 Jan 1988
105    LeapSec {
106        ntp_timestamp: 2840140800,
107        leap_sec_after: 25,
108        utc_sec: -315576000,
109        tai_sec: -315575976,
110    }, // 1 Jan 1990
111    LeapSec {
112        ntp_timestamp: 2871676800,
113        leap_sec_after: 26,
114        utc_sec: -284040000,
115        tai_sec: -284039975,
116    }, // 1 Jan 1991
117    LeapSec {
118        ntp_timestamp: 2918937600,
119        leap_sec_after: 27,
120        utc_sec: -236779200,
121        tai_sec: -236779174,
122    }, // 1 Jul 1992
123    LeapSec {
124        ntp_timestamp: 2950473600,
125        leap_sec_after: 28,
126        utc_sec: -205243200,
127        tai_sec: -205243173,
128    }, // 1 Jul 1993
129    LeapSec {
130        ntp_timestamp: 2982009600,
131        leap_sec_after: 29,
132        utc_sec: -173707200,
133        tai_sec: -173707172,
134    }, // 1 Jul 1994
135    LeapSec {
136        ntp_timestamp: 3029443200,
137        leap_sec_after: 30,
138        utc_sec: -126273600,
139        tai_sec: -126273571,
140    }, // 1 Jan 1996
141    LeapSec {
142        ntp_timestamp: 3076704000,
143        leap_sec_after: 31,
144        utc_sec: -79012800,
145        tai_sec: -79012770,
146    }, // 1 Jul 1997
147    LeapSec {
148        ntp_timestamp: 3124137600,
149        leap_sec_after: 32,
150        utc_sec: -31579200,
151        tai_sec: -31579169,
152    }, // 1 Jan 1999
153    LeapSec {
154        ntp_timestamp: 3345062400,
155        leap_sec_after: 33,
156        utc_sec: 189345600,
157        tai_sec: 189345632,
158    }, // 1 Jan 2006
159    LeapSec {
160        ntp_timestamp: 3439756800,
161        leap_sec_after: 34,
162        utc_sec: 284040000,
163        tai_sec: 284040033,
164    }, // 1 Jan 2009
165    LeapSec {
166        ntp_timestamp: 3550089600,
167        leap_sec_after: 35,
168        utc_sec: 394372800,
169        tai_sec: 394372834,
170    }, // 1 Jul 2012
171    LeapSec {
172        ntp_timestamp: 3644697600,
173        leap_sec_after: 36,
174        utc_sec: 488980800,
175        tai_sec: 488980835,
176    }, // 1 Jul 2015
177    LeapSec {
178        ntp_timestamp: 3692217600,
179        leap_sec_after: 37,
180        utc_sec: 536500800,
181        tai_sec: 536500836,
182    }, // 1 Jan 2017
183];