オリンピック・イヤーは閏年(うるう年)か?

(1/1)
4 年に一度やって来るオリンピック・イヤーは閏年*(うるうどし)と覚えている方は多いのではないだろうか。
だが、これは間違っている。アテネ大会のあった 2004 年 2 月 29 日は日曜日、シドニー大会があった 2000 年 2 月 29 日は火曜日、アトランタ大会のあった 1996 年 2 月 29 日は木曜日‥‥しかし、オリンピック第2 回大会、パリ大会が開かれた 1900 年の 2 月 28 日水曜日の翌日は 3 月 1 日木曜日だった。

閏年のルール

現在我々が使っているグレゴリオ暦においては、次のような閏年のルールがある。
  1. 4 で割り切れる年は閏年である。
  2. ただし、100 で割り切れる年は平年である。
  3. ただし、400 で割り切れる年は閏年である。
近代オリンピックは、1886 年の第1 回大会以来、4 で割り切れる年に行われているので、通常は閏年である。しかし、1900 年のパリ大会の際は、2番目のルールが適用され平年となった。一方、2000 年のシドニー大会は 3番目のルールが適用され閏年になった。この先、2100 年の大会の際には 2番目のルールが適用され平年となる。

カレンダー表示は正しいか

イラスト このルールを守っていないプログラムはかなり多い。
space
手元に自動カレンダー式の時計があったら取扱説明書に目を通してほしい。「2099 年まで使えます」と書いてある時計は、閏年のルールが組み込まれていないとみてよい。
前述の 1番目のルール――4 で割り切れる年は閏年である――だけでも、1901 年から 2099 年までのカレンダーを表示できる。そこで、論理回路を簡単にするために、2,3番目のルールを割愛しているわけである。まあ、これから 2100 年まで生きている人はほとんどいないから、実用上差し支えないだろう。
しかし、これがパソコン用の汎用アプリケーションとなると、少々困る。100 年前の歴史データを扱ったり、100 年先のシミュレーションを行うことは“ありがち”な作業だからである。
space
たとえば Microsoft Excel であるが、マニュアルによると 1899 年以前の日付を扱えないことになっている。これはアプリケーションの“仕様”なのだが、実際の製品を使ってみると、1900 年 1 月 1 日から同年 2 月 28 日までの曜日計算が間違っている。さらに、"1900/2/29"と入力すると日付型と解釈され、曜日計算もできてしまう。これは明らかなバグである。
これは Windows版に限ったバグで、Macintosh版では 1903 年以前の日付を扱えないように改められている。しかし、Windows版は Excel 2003 になってもバグが残ったままである。ちなみに、"2100/2/29"はきちんとエラーとなる。これはマイクロソフトに限った問題ではない。他社のアプリケーションでも注意した方がよい。
space
また、プログラムを製造する場合は、利用する日付計算関係のライブラリや組み込み関数が、きちんとルールを守っているかどうか確認した方がよい。とくに Visual Basic 系は注意が必要だ。

公衆電話機が故障した理由

イラスト 2008 年 1 月 31 日、NTT の「DMC-8」という緑色のデジタル公衆電話が利用できなくなった。2 月 4 日現在、使えなくなった公衆電話機は、NTT 東日本管内が 2,329 台、NTT西日本管内が 878 台の、合計3,207 台に及んだ。
NTT 東日本のホームページでは、故障の原因について次のように説明している。
公衆電話機は、定期的に、あるいは料金回収時の公衆電話機の開閉時等に、動作の正常性を確認する自己診断機能を有しています。この機能は、次回診断日の自動設定も行います。
今回の故障は、公衆電話機の開閉等による次回診断日設定の際、「うるう年」の処理を行うソフトウェアに処理誤りが発生し、次回診断日の設定ができず機能停止したものです。

電話機の修理には現場で 1 台ずつ行い、2 月 7 日夕方にすべて復旧した。
space
一方、ウィルコムが発売したばかりのケーイーエス製電話機「9+(ナインプラス)」で、自動日時補正の機能をオンにすると、日付補正機能が正しく作動しない可能性が判明した(ウィルコムのプレスリリース)。ウィルコムは「うるう年を誤認した」とし、出荷した 6,000 台のソフトウエアの修正を無償で行う。
space
また、NTT 東西のブロードバンド動画配信サービス「4th MEDIA」用セットトップボックス「Picture Mate 300」が正常に起動しなくなった。29 日午前 0 時以降に主電源を立ち上げると、機器が正常に起動しないという。うるう年の処理に問題があり、誤作動を起こしているとみられる。
当面の対応として、使用可能なユーザーは主電源を切らないよう呼びかけている。

参考書籍

(この項おわり)
header