« はこ BOON | トップページ | 2台目のジャンクDS Lite修理完了 »

2010年3月 2日 (火)

PS3が2010年を閏年だと判定した理由?

※念のため。以下は勝手な推測ですし、こんな変なロジックは有り得ないと個人的には思っています。
 本当にSONYが公式に「どうして2010年が閏年になったのか」を説明してくれると世間の皆さんがすっきりすると思うんですけどねぇ(^^;。

-------------------------
2010年を閏年と誤判定するロジックは以下の通り、じゃないかと・・・・。
でも、もしこれが本当ならそのプログラマ出て来いっ!って感じですが・・・。

・下2桁で閏年判定している。←私に言わせればもうこの時点でアウト。
・下2桁を十進数では無く十六進数として扱っていた

つまり2000年以降2009年までは0x00~0x09なのでどちらにしろ正常な計算となる。
でも2010年は0x10=16年となり4で割れるから閏年判定・・・・。

そうすると今後は、

2011年→平年 ○
2012年→平年 × 閏年が正解
2013年→平年 ○
2014年→閏年 × 平年が正解
2015年→平年 ○
2016年→平年 × 閏年が正解

と言う風に1年置きに変な日付が発生し、更に2014年には再度同じ問題が発生する事になります・・・。
2012年と2016年はNTPで時刻同期している限り多分そう問題にはなりませんけど(本当は29日なのに3月1日になっているだけだから)。

けど。

本当かよ?と言うのが今の思いです。
まぁねぇ、前の会社で誰かさんが作ったプログラムも2010年まで使わないだろうと言うことで10年以降は駄目な作りになっていたりするので絶対有り得ないとまでは言いませんけど。

こんなのやっぱり有り得ないでしょう。
なので、本当にこの通りならプログラマ辞めなさい、と言いたい。
↑プログラマよりもテスト仕様書を作った人か実際にテストを行ったテスターの方が悪いかも・・・・。

別の理由があると信じたい・・・・。

【2010/03/03追記】
PS3の閏年問題、ネット見てたらもっと酷い予測があった(でもひょっとしたらこっちの方が当たってるのかも)。

曰く「西暦の下1桁だけで閏年判断」→「下1桁を4で割って余り0なら閏年」

まぁ結果的に十六進数とほぼ変わらない結果になるんですけどね。
もしこれが本当なら最初から2009年までしか想定していなかった事になるんですけど・・・。
ん~、やっぱりこれも無いよなぁ・・・・。
PS3発売したの、2006年ですからねぇ・・・・。PS2で10年以上だから2009年までしか想定してないってのは有り得ないよなぁ。

|

« はこ BOON | トップページ | 2台目のジャンクDS Lite修理完了 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/179854/47706364

この記事へのトラックバック一覧です: PS3が2010年を閏年だと判定した理由?:

« はこ BOON | トップページ | 2台目のジャンクDS Lite修理完了 »