2000年問題
2000年2月29日に、当日を閏日として処理せず「日付誤り」として取り扱ったり処理に障害が出る事例が発生した。
郵便貯金ATMのうち、約1,200台が停止。富士通製のLSIに不具合があり、1996年から1999年にかけて製造された同社製および沖電気工業製の一部ATMが停止したことが、同日深夜に郵政省と富士通から発表された。
札幌市交通局の路線バスから地下鉄への乗継ぎができなくなった。バスで発行される「乗継ぎ券」の日付が2月28日となってしまい、地下鉄の自動改札機を通過できなかった。
気象庁のアメダスが誤作動。長崎県平戸市では降雨がないにもかかわらず、1時間に973 mmという尋常でない降雨量が記録された(ちなみに2022年時点では千葉県香取市で1999年10月27日に観測された153mmが実際の1時間最多降水量である)。
当時、想定された問題には、次のようなものがあった。
発電・送電機能の停止や誤作動とそれに伴う停電
医療関連機器の機能停止
水道水の供給停止
鉄道・航空管制など交通機能の停止
弾道ミサイルなどの誤発射。2000年に突入するタイミングに合わせて、2000年問題にかこつけて故意にミサイルを発射する国家が出るのではという懸念もあった。
銀行・株式市場など金融関連の機能停止
通信機能の停止
従って、1990年代末期に使用していたコンピュータプログラムの訂正が世界規模で行われたが、この修正作業に費用と期間が取られてしまう企業も出てしまい、特に中小企業などにおいて大きな打撃となった。
直接の原因はプログラム内で日付を扱う際、西暦の4桁のうち上位2桁を省略し下位2桁だけを処理対象にしたことである。("yy-mm-dd"や"dd-mm-yy"など)
古い電算システムを構築するのに用いられたCOBOLやFORTRANのような古いプログラミング言語では、データ型に「日付型」が用意されていない。従ってプログラム内では年を表現するために2桁の文字型を割り当てて、西暦表示4桁のうち下2桁だけを記録・処理した。この方式では2000年が内部で「00年」となるので、これを「1900年」と見なしてしまい、例えば「レコードを日付順に並べ替える処理をすると、順序が狂う」などの誤作動を起こす可能性があると指摘された。
4桁で表現される西暦年数を格納するには、4桁の文字列 ("yyyy")を確保するのが妥当であるが、当時コンピュータが2000年まで長きにわたって運用されるとは予想されていなかっただけでなく、初期のコンピュータシステムでは、磁気テープなどのリソース、特にメモリの容量が極めて少ない上、高価な貴重品であるため、できるだけメモリを節約するプログラミングが要求された。