By Ian Otieno.

Time and Computers
Time is essential to the correct functioning of computer systems. It is used in banks for calculating interest, GPS applications for calculating speed, embedded systems to trigger events and responses as required by the program, network applications to handle scheduling of data, cellphones and other network hardware.

Epoch Date
This is the date the counter for seconds was initialized. It is January, 1st 1970 00:00:00 on the Greenwich Mean Time zone. Each day exactly 86400 seconds are added to the counter.

As to why this date was picked, it was a combination of convenience and arbitrary decisions. The Unix operating system was being developed in the mid-1960s under the name MULTICS by Massachusetts Institute of Technology, AT&T Bell labs and General Electric as a time sharing operating system. Paul Neumann termed the project UNICS (UNiplexed Information and Computing Service) in 1970. It was in the 1970s that UNIX (name derived from the project name) began gaining popularity and it was necessary to synchronize how all the versions of the operating system handled time. The programmers hence picked the convenient date of exactly New Year's Day of 1970.

This number is stored as a signed 32-bit binary digit in the UNIX system, hence the maximum number of seconds that can be stored if you increment it by one every second is 232 =4294967296 seconds. Since the binary bit is signed, you'll have negative and positive values hence the limits of numbers you can store is from 2,147,483,647 to -2,147,486,648 (including Zero). The memory location storing this number is essentially a counter. When a counter reaches its maximum value, it resets back down to the lowest value in the count sequence .

Year 2038
The 2038 problem is essentially when the counter, which keeps track of seconds, will fill up and overflow on 32- bit systems. The end of UNIX time will happen on exactly 03:14:07 UTC on Tuesday, 19th January 2038. This date is exactly 2,147,483,647 seconds after the epoch date. At the next second which will be 03:14:08 UTC on Wednesday, 19th January 2038, any 32-bit UNIX based operating systems will instead show the date as 20:45:52 UTC on Friday13th December 1901 which is exactly 2,147,483,648 seconds before the epoch date.

Effects On You
This problem will affect all 32bit computer systems running a UNIX like system, unfortunately, this will encompass all of the most common operating systems in use today. Windows and Mac OS operating systems are both built on a framework of UNIX, Linux users aren't safe either since Linux is a user friendly version of UNIX. A vast majority of Android operating systems will be affected as well, some phones don't function as normal if the date is set to beyond 19/1/2038. All the software which uses absolute dates rather than relative dates to calculate time will be affected.

It's very likely a banking system will add a huge negative amount of compound savings to the customers (very good if you have a loan since it will wipe out approximately 37 years of interest, terrible if you have savings since 37 years of interest added will vanish as well). Navigation GPS systems will also encounter glitches as the software and device will have to compute speed and subsequently break down as it tries to calculate how you moved backwards in time.

The problem will also affect systems that forecast to 2038 meaning that if the system uses a date 20yrs in the future, it will have to be fixed by 2018. Programs or apps that impose time wait-out periods will crash if set later than the 2038 date. A security system that uses absolute dates and time to impose time-locks (e.g. in a bank vault or building entrance) will crash as it will be unable to resolve the date going backwards when calculating when to release the locks.

Software licenses are also prone to this as they use absolute dates to set how long a user as access to the functions of the program.

The Fix 64-bit systems are immune to this problem because the UNIX time is stored in a 64-bit number. For those wondering, this will overflow when the memory location looks like: 1111.1111.1111.1111.1111.1111.1 1 11.1111. 1111.1111.1111.1111.1111 .1111.1111.1111

And this will happen on 15:30:08 on Sunday, 4 December 292,277,026,596 or approximately 292 billion years from now. Hence the best fix is to upgrade all systems to 64-bit before the 2038 date approaches.