Before someone else asks, here's a source to confirm 23:

http://maia.usno.navy.mil/ser7/tai-utc.dat

 1961 JAN  1 =JD 2437300.5  TAI-UTC=   1.4228180 S + (MJD - 37300.) X 0.001296 S
 1961 AUG  1 =JD 2437512.5  TAI-UTC=   1.3728180 S + (MJD - 37300.) X 0.001296 S
 1962 JAN  1 =JD 2437665.5  TAI-UTC=   1.8458580 S + (MJD - 37665.) X 0.0011232S
 1963 NOV  1 =JD 2438334.5  TAI-UTC=   1.9458580 S + (MJD - 37665.) X 0.0011232S
 1964 JAN  1 =JD 2438395.5  TAI-UTC=   3.2401300 S + (MJD - 38761.) X 0.001296 S
 1964 APR  1 =JD 2438486.5  TAI-UTC=   3.3401300 S + (MJD - 38761.) X 0.001296 S
 1964 SEP  1 =JD 2438639.5  TAI-UTC=   3.4401300 S + (MJD - 38761.) X 0.001296 S
 1965 JAN  1 =JD 2438761.5  TAI-UTC=   3.5401300 S + (MJD - 38761.) X 0.001296 S
 1965 MAR  1 =JD 2438820.5  TAI-UTC=   3.6401300 S + (MJD - 38761.) X 0.001296 S
 1965 JUL  1 =JD 2438942.5  TAI-UTC=   3.7401300 S + (MJD - 38761.) X 0.001296 S
 1965 SEP  1 =JD 2439004.5  TAI-UTC=   3.8401300 S + (MJD - 38761.) X 0.001296 S
 1966 JAN  1 =JD 2439126.5  TAI-UTC=   4.3131700 S + (MJD - 39126.) X 0.002592 S
 1968 FEB  1 =JD 2439887.5  TAI-UTC=   4.2131700 S + (MJD - 39126.) X 0.002592 S
 1972 JAN  1 =JD 2441317.5  TAI-UTC=  10.0       S + (MJD - 41317.) X 0.0      S
 1972 JUL  1 =JD 2441499.5  TAI-UTC=  11.0       S + (MJD - 41317.) X 0.0      S
 1973 JAN  1 =JD 2441683.5  TAI-UTC=  12.0       S + (MJD - 41317.) X 0.0      S
 1974 JAN  1 =JD 2442048.5  TAI-UTC=  13.0       S + (MJD - 41317.) X 0.0      S
 1975 JAN  1 =JD 2442413.5  TAI-UTC=  14.0       S + (MJD - 41317.) X 0.0      S
 1976 JAN  1 =JD 2442778.5  TAI-UTC=  15.0       S + (MJD - 41317.) X 0.0      S
 1977 JAN  1 =JD 2443144.5  TAI-UTC=  16.0       S + (MJD - 41317.) X 0.0      S
 1978 JAN  1 =JD 2443509.5  TAI-UTC=  17.0       S + (MJD - 41317.) X 0.0      S
 1979 JAN  1 =JD 2443874.5  TAI-UTC=  18.0       S + (MJD - 41317.) X 0.0      S
 1980 JAN  1 =JD 2444239.5  TAI-UTC=  19.0       S + (MJD - 41317.) X 0.0      S
 1981 JUL  1 =JD 2444786.5  TAI-UTC=  20.0       S + (MJD - 41317.) X 0.0      S
 1982 JUL  1 =JD 2445151.5  TAI-UTC=  21.0       S + (MJD - 41317.) X 0.0      S
 1983 JUL  1 =JD 2445516.5  TAI-UTC=  22.0       S + (MJD - 41317.) X 0.0      S
 1985 JUL  1 =JD 2446247.5  TAI-UTC=  23.0       S + (MJD - 41317.) X 0.0      S
 1988 JAN  1 =JD 2447161.5  TAI-UTC=  24.0       S + (MJD - 41317.) X 0.0      S
 1990 JAN  1 =JD 2447892.5  TAI-UTC=  25.0       S + (MJD - 41317.) X 0.0      S
 1991 JAN  1 =JD 2448257.5  TAI-UTC=  26.0       S + (MJD - 41317.) X 0.0      S
 1992 JUL  1 =JD 2448804.5  TAI-UTC=  27.0       S + (MJD - 41317.) X 0.0      S
 1993 JUL  1 =JD 2449169.5  TAI-UTC=  28.0       S + (MJD - 41317.) X 0.0      S
 1994 JUL  1 =JD 2449534.5  TAI-UTC=  29.0       S + (MJD - 41317.) X 0.0      S
 1996 JAN  1 =JD 2450083.5  TAI-UTC=  30.0       S + (MJD - 41317.) X 0.0      S
 1997 JUL  1 =JD 2450630.5  TAI-UTC=  31.0       S + (MJD - 41317.) X 0.0      S
 1999 JAN  1 =JD 2451179.5  TAI-UTC=  32.0       S + (MJD - 41317.) X 0.0      S
 2006 JAN  1 =JD 2453736.5  TAI-UTC=  33.0       S + (MJD - 41317.) X 0.0      S

33 as of 2006 - 10 as of 1972 = 23 total

And there will be another one next year:

 2009 JAN  1 =JD 2454832.5  TAI-UTC=  34.0       S + (MJD - 41317.) X 0.0      S



On Thu, Jul 3, 2008 at 3:00 AM, Monty, James T <[EMAIL PROTECTED]> wrote:
> There's a good article about computerized timekeeping in the current
> issue of Government Computer News:
>
>    http://www.gcn.com/print/27_15/46509-1.html
>
>    Who's got the time?
>    As computer systems become increasingly precise, a conflict emerges
>    between human and machine measurements
>    By Joab Jackson
>
> To explain epoch time, Mr. Jackson writes:
>
>    For Posix-based computers such as Unix or Linux, time began Jan, 1,
>    1970, at midnight. The time according to those machines is the
>    number of seconds that have accumulated since. For instance, the
>    Greenwich Mean Time 8:22 p.m., Tuesday, June 10, 2008, translates to
>    1213129345 in Posix-speak.
>
> Naturally, I fired up DateTime to verify this value:
>
>    C:\>perl -MDateTime -le "$dt = DateTime->new( year => 2008, month =>
>    6, day => 10, hour => 20, minute => 22 ); print $dt->epoch()"
>    1213129320
>
>    C:\>
>
> Hmm...off by 25 seconds. When I factor out DateTime, I get the same
> result:
>
>    C:\>perl -MTime::Local -le "print timegm(0,22,20,10,5,2008)"
>    1213129320
>
>    C:\>perl -MPOSIX -le "print POSIX::strftime(q{%Y-%m-%dT%H:%M:%S},
>    gmtime(1213129345))"
>    2008-06-10T20:22:25
>
>    C:\>perl -MPOSIX -le "print POSIX::strftime(q{%Y-%m-%dT%H:%M:%S},
>    gmtime(1213129320))"
>    2008-06-10T20:22:00
>
>    C:\>
>
> There had been 23 leap seconds as of June 10, not 25, so this doesn't
> account for the difference exactly:
>
>    C:\>perl -MDateTime -le "$dt = DateTime->new( year => 2008, month =>
>    6, day => 10, hour => 20, minute => 22, time_zone => 'UTC' ); print
>    $dt->leap_seconds()"
>    23
>
>    C:\>
>
> I've written the author to thank him for his excellent article and to
> ask him how he computed the value 1213129345.
>
> --
> Jim Monty
>
> <html>
> <body>
> <p>***********************************************************************</p>
> <p>The information in this email is confidential and may be legally 
> privileged.
> It is intended solely for the addressee. Access to this email by anyone else 
> is
> unauthorized. If you are not the intended recipient, any disclosure, copying,
> distribution or any action taken or omitted to be taken in reliance on it, is
> prohibited and may be unlawful. When addressed to our clients any opinions or
> advice contained in this email are subject to the terms and conditions
> expressed in the governing KPMG client engagement letter.</p>
> <p>***********************************************************************</p>
> </body>
> </html>
>
>



-- 
Matthew O. Persico

Reply via email to