|
4 年に一度やって来るオリンピック・イヤーは閏年*(うるうどし)と覚えている方は多いのではないだろうか。 だが、これは間違っている。アテネ大会のあった 2004 年 2 月 29 日は日曜日、シドニー大会があった 2000 年 2 月 29 日は火曜日、アトランタ大会のあった 1996 年 2 月 29 日は木曜日‥‥しかし、オリンピック第2 回大会、パリ大会が開かれた 1900 年の 2 月 28 日水曜日の翌日は 3 月 1 日木曜日だった。 |
閏年のルール |
|
現在我々が使っているグレゴリオ暦においては、次のような閏年のルールがある。
|
|
カレンダー表示は正しいか |
|
|
このルールを守っていないプログラムはかなり多い。
手元に自動カレンダー式の時計があったら取扱説明書に目を通してほしい。「2099 年まで使えます」と書いてある時計は、閏年のルールが組み込まれていないとみてよい。 前述の 1番目のルール――4 で割り切れる年は閏年である――だけでも、1901 年から 2099 年までのカレンダーを表示できる。そこで、論理回路を簡単にするために、2,3番目のルールを割愛しているわけである。まあ、これから 2100 年まで生きている人はほとんどいないから、実用上差し支えないだろう。 |
|
しかし、これがパソコン用の汎用アプリケーションとなると、少々困る。100 年前の歴史データを扱ったり、100 年先のシミュレーションを行うことは“ありがち”な作業だからである。
たとえば Microsoft Excel であるが、マニュアルによると 1899 年以前の日付を扱えないことになっている。これはアプリケーションの“仕様”なのだが、実際の製品を使ってみると、1900 年 1 月 1 日から同年 2 月 28 日までの曜日計算が間違っている。さらに、"1900/2/29"と入力すると日付型と解釈され、曜日計算もできてしまう。これは明らかなバグである。 これは Windows版に限ったバグで、Macintosh版では 1903 年以前の日付を扱えないように改められている。しかし、Windows版は Excel 2003 になってもバグが残ったままである。ちなみに、"2100/2/29"はきちんとエラーとなる。これはマイクロソフトに限った問題ではない。他社のアプリケーションでも注意した方がよい。 また、プログラムを製造する場合は、利用する日付計算関係のライブラリや組み込み関数が、きちんとルールを守っているかどうか確認した方がよい。とくに Visual Basic 系は注意が必要だ。 |
公衆電話機が故障した理由 |
|
|
2008 年 1 月 31 日、NTT の「DMC-8」という緑色のデジタル公衆電話が利用できなくなった。2 月 4 日現在、使えなくなった公衆電話機は、NTT 東日本管内が 2,329 台、NTT西日本管内が 878 台の、合計3,207 台に及んだ。 |
NTT 東日本のホームページでは、故障の原因について次のように説明している。
公衆電話機は、定期的に、あるいは料金回収時の公衆電話機の開閉時等に、動作の正常性を確認する自己診断機能を有しています。この機能は、次回診断日の自動設定も行います。 電話機の修理には現場で 1 台ずつ行い、2 月 7 日夕方にすべて復旧した。 一方、ウィルコムが発売したばかりのケーイーエス製電話機「9+(ナインプラス)」で、自動日時補正の機能をオンにすると、日付補正機能が正しく作動しない可能性が判明した(ウィルコムのプレスリリース)。ウィルコムは「うるう年を誤認した」とし、出荷した 6,000 台のソフトウエアの修正を無償で行う。 また、NTT 東西のブロードバンド動画配信サービス「4th MEDIA」用セットトップボックス「Picture Mate 300」が正常に起動しなくなった。29 日午前 0 時以降に主電源を立ち上げると、機器が正常に起動しないという。うるう年の処理に問題があり、誤作動を起こしているとみられる。 当面の対応として、使用可能なユーザーは主電源を切らないよう呼びかけている。 |
参考書籍 |
|
|
|
(この項おわり)
|
|
|
|
|
2008年03月03日更新
Copyright by studio pahoo, (C)2008
(※)本ページはリンクフリーですが、複製・転載時にはご一報ください。 ★本ページへのご意見・ご質問・お便りは、ここをクリックしてください。 |