You'll have to be pretty quick to celebrate it but just before midnight on the 31st of December 2008 a leap second will be added to UTC. I've mentioned leap seconds before but as my good friend Tom Coxen helpfully pointed out, I didn't bother to explain them. Hopefully I can correct that here.
Most people know two things about UTC: that it's a global time standard and that it's the modern equivalent of GMT. They might also feel safe in the assumption that it is extremely accurate because it is regulated by modern atomic clocks. This is all true but probably the most important characteristic of UTC is that it is a man-made timescale - a rigid framework of periodic intervals designed to provide uniformity. It is this rigidity that can sometimes be a problem.
UTC and UT1
The story of how we arrived at UTC is a fascinating and colourful one but one I'm going to have to put to one side for today. Suffice to say UTC is not alone. It is linked to another timescale called TAI-UT1. This is the timescale that measures the actual rotation of the earth. The problem with synchronising a rigid timescale like UTC to a dynamic one like UT1 is that the earth suffers from the same problem as the AS3 Timer class - it's not very accurate.
The concept of leap days are familiar to most of us. Every four years (on the whole) an extra day is inserted into the end of February. These intercalary days, as they are known, keep the modern Gregorian calendar in sync with the orbit of the earth around the sun. The same principle is applied to the movement of the earth and UTC. The two are kept in sync by the addition or removal of leap seconds from UTC.
The organisation in charge of monitoring such things is the snappily named International Earth Rotation and Reference Systems Service, or IERS for short. A week or so ago they issued Bulletin C 36, an advisory notice about the insertion of a leap second into the end of December 2008. What's interesting about this leap second is that it comes at the end of a leap year, making 2008 (along with 1972, 1976 and 1992) an extra long year.
ECMAScript and Leap Seconds
If you are an Actionscript or Javascript programmer and you're encountering leap seconds for the first time you might be wondering to yourself, is there anything I should do? Put a paper bag over my head or something? Well don't panic. Actionscript is based on ECMAScript and the ECMA 262 implementation of UTC gets round the thorny problem of leap seconds by completely ignoring them.