Time formatting and storage bugs

http://en.wikipedia.org/wiki/Time_formatting_and_storage_bugs

Current date/time (also last page load/refresh) :

Gregorian date : (0000)2022-07-07 T04h59m02s UTC
Unix time : 1 657 169 942
Unix time (base 2, 32-bit) : 0110 0010 1100 0110 0110 1000 0001 0110
Unix time (base 2, 64-bit) : 0000 0000 0000 0000 0000 0000 0000 0000 0110 0010 1100 0110 0110 1000 0001 0110

2038

Issue : System time is stored as a 32-bit signed integer and will therefore roll over at the target date below.

Target date/time in 2038 :

Gregorian date : (0000)2038-01-19 T03h14m07s UTC
Unix time : 2 147 483 647
Unix time (base 2, 32-bit) : 0111 1111 1111 1111 1111 1111 1111 1111
Unix time (base 2, 64-bit) : 0000 0000 0000 0000 0000 0000 0000 0000 0111 1111 1111 1111 1111 1111 1111 1111

Time to year 2038 :

15 years, 6 months, 11 days, 22 hours, 15 minutes, 4 seconds.

Critical point beyond the target date/time in 2038 :

Gregorian date : (0000)2038-01-19 T03h14m08s UTC
Unix time : 2 147 483 648
Unix time (base 2, 32-bit) : [error]
Unix time (base 2, 64-bit) : 0000 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000

2079

Issue : Programmes that store dates as a number of days since an arbitrary date will roll over in 2079 (for a given starting year of 1900).

Target date/time in 2079 :

Gregorian date : (0000)2079-06-05 T00h00m00s UTC
Unix time : 3 453 148 800
Unix time (base 2, 32-bit) : [error]
Unix time (base 2, 64-bit) : 0000 0000 0000 0000 0000 0000 0000 0000 1100 1101 1101 0010 1101 1110 1000 0000

Time to year 2079 :

56 years, 10 months, 29 days, 19 hours, 0 minutes, 57 seconds.

Critical point beyond the target date/time in 2079 :

Gregorian date : (0000)2079-06-06 T00h00m00s UTC
Unix time : 3 453 235 200
Unix time (base 2, 32-bit) : [error]
Unix time (base 2, 64-bit) : 0000 0000 0000 0000 0000 0000 0000 0000 1100 1101 1101 0100 0011 0000 0000 0000

I don’t think it’s even worth developping 128-bit operating systems—they should skip straight to 256-bit.