2036年、2038年問題って?

f:id:daichi-t-0123:20190507114722j:plain

2036年2038年問題ってご存知ですか?

その前に、少し前に「2000年問題」というのがありました。
これは、年の下2桁で管理しているプログラムが誤作動を起こすかもしれないというもの。

下2桁で年を管理している場合、「19xx」がベースになっていました。
そのため、1999年から2000年に変わる際に「1900年」として処理する可能性があったのです。
私が知っている限りだとCOBOLなどのレガシー言語が主ですね。

要するに下2桁のみで管理しているので桁上りができない。
そのため、1900年に戻るというものでした。

では、2036年2038年問題はというと?
一言で言うとこちらも桁あふれで時刻が正確に計れなくなるというものです。

以下のリンク先に詳しく載っていますのでそちらを参照下さい。
2036年 → NTP(プロトコル)

2036年問題とは何?Weblio辞書

2038年 → C言語の時刻機能

2038年問題とは何? Weblio辞書

解決策

一番手っ取り早い解決策が、OSが32bitから64bitに変えることですね。
企業で使用している場合、なかなか変更は難しいと思うので、
早めに対応したほうが良いかもしれませんね。

また、64bitの場合使用できるメモリも増えるため
今まで動作が遅いなどの症状が少しは改善されると思います。

その他にも、プログラム側で時刻計算して乗り越えるって方法もありますが、
その事を書き始めると長くなるので他のサイトを調べて下さい。

最後に

内容がぺらっぺらの記事で申し訳ないです。
メモ程度の無いようなので厳密にどうしたら良いかを調べてた人はすみません。

これら以外にも問題っていろいろあると思うので分かり次第書いていこうと思います。