西暦2100年問題

西暦2100年問題

[4] 日時処理関係の問題の発生が予想されています。

閏年問題

[3] 西暦2100年問題は、 グレゴリオ閏日に関する閏年バグです。

[1] 【絶対】PC の時計を 2099 年 12 月 31 日にしてはいけない【ダメ】 - satosystemsの日記 ( ( 版)) http://d.hatena.ne.jp/satosystems/20130306/1362549958

[2] 【うるう年】システムの2100年問題【どうなる?】 : 0から楽しむパソコン講座のブログ, 2020年01月31日 20:58, https://zeropasoakita.livedoor.blog/archives/10004949.html

1.西暦年が4で割り切れる年は閏年。 これはみなさん分かっています。しかしそれだけではない定義があるのです。

2.ただし、西暦年が100で割り切れる年は平年。

3.上記は該当していても、西暦年が400で割り切れる年は閏年。

実は先ではありますが、デジタル業界で大きな問題の一つが「2100年問題」となります。

プログラムを作成するときに、うるう年の判断はほとんど1.だけの定義で作成されています。もちろんサーバーの時計の部分もパソコンの中にあるカレンダーもすべて2.と3.の定義は無視となっています。

なぜ、そのようになったかというと、2100年まで使用するということをだれも想定していないでプログラムを作っているのです。2100年までプログラムやハードを使うわけはないとみなさんが思っているのです。

そういうのも未だに少なからずありそうだけど、さすがにこれは嘘ではないか。 少なくても LinuxWindows がそうだという話は聞いたことがない。

たしかに一理はあります。しかし、問題なのは、プログラムを修正(アップデート)したり、新モデルのハードを作る場合、前の技術を応用・修正して作ります。つまり、現在のような感じでいくと、2100年近くになってこの「うるう年」の修正の問題が出てくる可能性があります。これを直さないと、日付が狂って大混乱間違えなしです。

100年もたっていれば何か良い技術ができ、この「うるう年」の問題は回避されていそうな気がしますが、もし、今後のITご技術が頭打ちとなっていた場合はこの問題が大きな問題となっているかもしれません。

とか呑気なこと言ってて2000年問題の惨状を招いたこと、 もう忘れたのかな、それともこれを書いた人はまだ生まれてなかったのかな? でも「100年もたっていれば」って書いてるのが2020年で、残り80年なんだよなーw 2000年問題を経験してない世代の人が2100年に100年後のようなイメージ持ってるかなあ?

その他の問題

[5] Time formatting and storage bugs - Wikipedia, , https://en.wikipedia.org/wiki/Time_formatting_and_storage_bugs#Year_2100

DOS and Windows file date API and conversion functions (such as INT 21h/AH=2Ah) officially support dates up to 31 December 2099, only (even though the underlying FAT filesystem would theoretically support dates up to 2107). Hence, DOS-based operating systems, as well as applications that convert other formats to the FAT/DOS format, may show unexpected behavior starting 1 January 2100.

The Nintendo DS and GameCube, as well as the Sony PlayStation 4, only allow users to set dates up to the year 2099. In the case of the Nintendo DS, the system will not advance time beyond 31 December 2099, whereas the GameCube and PS4 will still roll over into 2100 and beyond, even though users of those game consoles cannot manually input the date and time that far out.

メモ