That's right, it's never too early to worry. We, the geeks of the world, all know that the Unix time stamp is represented as seconds since the Epoch, which was January 1st, 1970, at precisely midnight. Unfortunately, the time stamp is defined as a 32-bit signed integer, which will overflow on January 19th, 2038, at precisely 03:14:08. "Great Scott!" you'll undoubtedly say, and you're right, that is kinda heavy.

To solve this serious problem, some have suggested making the time stamp an unsigned integer. Of course, that would suddenly change my birth date to December 9th, 1973. As flattering as this might seem, it wouldn't be very practical in the long run.

Others have suggested using a signed 64-bit integer to represent the date, and that would be fine if everyone were feeling okay with a granularity of one second, which is not the case. Even those who are not satisfied with one second increments seem unable to agree on exactly which SI-prefix would be a fitting resolution.

After thinking about the problem for a while, I believe I have the perfect solution. Why not simply ask the universe for guidance, so we can settle the matter, once and for all?

No, you can relax, mom, I haven't joined a New Age cult. I'm talking about such things as the Planck Time, which is believed to be the shortest interval of time you can measure before quantum effects mess everything up. Hence, you could say that the Planck Time is the duration between quantum ticks - the intervals by which time itself progresses. If we made the time stamp resolution equal to the Planck Time, one second would consist of some 18.5487 quintillion septillion ticks. That's ten to the power of forty-two. Those familiar with Douglas Adams' writings will find this very fitting, indeed.

To determine how many seconds of time we need to represent, let's first talk about history on a universal scale. The furthest back in the past we'll need to represent time would be the Big Bang, obviously. The age of the universe is somewhere around 13.73 billion years, and since a year is usually 31,536,000 seconds, we get close to 433 Quadrillion seconds. That's around 8.0314 Trillion Septillion Septillion quantum ticks, or 8.0314 x 1060. There is still some uncertainty, however, about the exact number of years, so let's just make it an even 1061.

Alright, enough about the past; how far into the future do we need to go? Well, it depends on a lot of things, not least the nature of dark energy, since this will determine the kind of demise the universe will suffer, and consequently when. The most widely accepted theory currently predicts the heat death of the universe in about 100 Trillion, or 1014, years. This translates to some 58.5 x 1063 quantum ticks.

So far, so good. Now all we need to do is find a signed integer that will contain numbers from minus 1061 to, say, 1065. Below is a list of integer widths and their numeric ranges. The number of bits in the integer is always doubled.

32 bits: ±2.147 x 109
64 bits: ±9.223 x 1018
128 bits: ±170.1 x 1036
256 bits: ±57.90 x 1075

As is apparent above, a 256-bit signed integer would suit us nicely. It even allows for shorter quantum ticks eerily predicted by some string theory models. Should these turn out to be right, a simple left shift sequence should sufficiently handle the conversion.

Problem solved! Now we just have to wait for 256-bit processors to enter into production, so we'll have native support for time stamps.

Suppose the zero point of the new Unix time stamp was set at precisely midnight on the 1st of January, 1970, then as I'm writing this, the time stamp value would be approximately 22.6 x 1051. It so happens that 22.6 is the current temperature, measured in degrees centigrade, here in my office. Go figure.