The problem stems from the common definition of the time_t as an integer containing the number of seconds since midnight, January 1, 1970. Most C/C++ runtime libraries define time_t as a long int. On most systems, long int is 32 bits, which means that we've got a range of 2^31-1 (2,147,483,647) secondsuntil sometime on January 18, 2038. (Assuming Dr. GUI's Windows CE Palm-size PC has it right, that's a Monday. Figures.)
Since the number is signed, when the clock rolls over the time will be a very large negative number, giving us a time warp of a little over 136 yearswe'll flip back to sometime late in December, 1901."
Dr. GUI, "All Ready for 2000 and the Euro? What About 2038?," MSDN Online Buzz