|
You don't need any more than 32 bits until about 2100. All you need is to look at time_t as an usigned 32bit value.
The way I handle this is with code like this: if(time_32bit < -1) { time_64bit = time_32bit + 4294967296ULL; } else { time_64bit = time_32bit; }This gives us a good time until 2100 or so (2108, actually). Converting time in to a normal year/month/day would require a big huge tine conversion library, but this gives us a usable UNIX timestamp for the next 80-88 years on 32-bit systems.
-- Sam