uruutosi

 今年は4年に1度のうるうるう年です。(正確には4年に1度ではないのですが)
 うるう年?の問題として大きなものがあります。それは2100年問題です。その2100年問題とはどんな問題などんでしょうか?
URUU2

 まずは「うるう年」というのはどんな時に「うるう年」になるのか説明しましょう。といってもみなさん分かっていると思います。4年に一度に「うるう年」になるということです。西暦を4で割り切れれば「うるう年」になるということです。

 「当たり前じゃない!!!」とみなさん思っているでしょう。「当たり前です!」と言いたいのですが、実はこの「うるう年」にする定義についてこの定義だけではありません。西暦が4で割り切れても「うるう年」にならない年があるのです。

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

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

この規則に従って400年間に97回の閏年を設ける。

と定義されているのです。西暦2000年がなぜうるう年になったかというと、
 1.の定義が該当しますが2.の定義で平年となります。しかし、3.の定義も当てはまるため、よって西暦2000年は、「うるう年」となりました。

 では2100年はどうでしょうか?
 1.の定義は該当しますが、2.の定義が当てはまるので平年となります。また、3の定義は当てはまらないので、よって

 西暦2100年は「うるう年ではなく平年」ということになります。

 実は先ではありますが、デジタル業界で大きな問題の一つが「2100年問題」となります。
 みなさんはこの2100年まで生きている人はほんのわずかでしょうからあまり心配はいらないと思いますが、あえて一応説明していきます。

program22

 プログラムを作成するときに、うるう年の判断はほとんど1.だけの定義で作成されています。もちろんサーバーの時計の部分もパソコンの中にあるカレンダーもすべて2.と3.の定義は無視となっています。
 なぜ、そのようになったかというと、2100年まで使用するということをだれも想定していないでプログラムを作っているのです。2100年までプログラムやハードを使うわけはないとみなさんが思っているのです。

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

 対策としては、新しく技術(ハードやソフト)を1から開発するか、プログラムを修正するかという2択になりますが、双方とも対策に時間がかかります。プログラムの修正の場合、特に日付の部分は各箇所に入り組んでつかわれていますので、それを全部修正するというのは大変な作業となります。まして前任者が作ったプログラムを解読するというのは結構大変な作業となります。ハードの開発の場合も同じことが言え、ICなどの低レベルのプログラム(機械語)もすべて修正しなければなりません。これも解読して修正するというのは大変な作業となります。
 100年もたっていれば何か良い技術ができ、この「うるう年」の問題は回避されていそうな気がしますが、もし、今後のITご技術が頭打ちとなっていた場合はこの問題が大きな問題となっているかもしれません。
TOUSI

 あともう一つ気になるのが、投資・運用などのプログラムの問題です。現在はあまり気にしませんが後に十数年後になった場合、投資・運用計画の部分でこの「2100年」をまたぐ利率予想や儲け予想、またはローンの返済計画の部分が出てくると思います。金額が大きければ、1日の誤差でも大きな金額の誤差が出てきます。
 そんなとこからこの2100年問題は今から対策するべきだという声も上がっています。