« さくら | Main | 春ですね »

2010.03.02

うるう

ありゃ?今年は閏年じゃなかったはずですが(笑) やっちまいましたねえ…

プレイステーション3のバグはうるう年の誤判定、1日経って自然解消.

日本時間午前9時をもって「一応復帰」をお伝えしていた PS3の不具合について、SCEから正式なアナウンスがありました。昨日から全世界で発生していた問題は、新型を除くPS3の日付が2000年1月1日に巻き戻りPSNへの接続ができない、DRMコンテンツが遊べないというもの。 2月30日 3月2日付けの「お知らせ」によると、問題の原因はやはり うるう年の誤判定。


これって時計ICの閏年カウンターの初期化ミス(僕もやったことがあるw *1)とかビットの読み違えかファームウェアのバグかなにかなんだろうなあ。閏年の判定計算は真面目にやるとけっこう面倒くさくてね。過去にもそんな記事を書きました。でもね、簡易な方法、西暦を4で割って余りが0なら閏年ってやつで2099年まで実はなんの問題もないのですよ。2000年は例外1(100で割り切れる年)ですが、例外2(400で割り切れる年)でもあるので、結局閏年。昔なんでわざわざ例外2まで入れた小難しい判定計算ルーチンを入れた製品を作っちまったのだが、今になって思うになんて無駄なことをしたものだと。。。無理に実装しない方がトラブルがないってこと。何ごともシンプルなのが一番いいってことってか。

*1:昔の時計ICは西暦が2桁しかなく、それと毎年0~3の間でカウントする閏年カウンターというのが別にあり、このカウンターが0になるとその年は2/29が現われるという仕組みになっていた。が、このカウンターを4桁の西暦を4で割って余りをセットするという初期化が必要だったのに忘れてえらい目にあったという昔話

|

« さくら | Main | 春ですね »

ニュース」カテゴリの記事

Comments

これって、不思議ですよねぇ。。。
そんなにRTCって進化したりしなさそうだから、RTCとOS間の整合がとれてないとかなんですかね。

やらかしそうな事例がまとまってるといいのになぁ。

Posted by: ひろひろし | 2010.03.04 at 01:54

真面目にやってると失敗することって良くありますよね。
一番安易なテーブルを持つってのが安心だったり(^^;

Posted by: MAD | 2010.03.04 at 08:22

ひろひろしさん>
んー、ほんとなにをやらかしちゃったんだろうなあと。とっても知りたがり(笑)
うんうん、トホホ集が見たいなあ。

MADさん>
テーブル作るとテーブルの書き間違いがありそうで怖い(笑)
やっぱりシンプルに4で割った余りが0がいいかも。

Posted by: くっきも | 2010.03.05 at 00:08

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/10432/47706151

Listed below are links to weblogs that reference うるう:

« さくら | Main | 春ですね »