PS3、今年をうるう年と誤認識 時計機能障害で(共同通信) - goo ニュース
いやぁ、こんなニュース全く知りませんでした。
とりあえず今確認しましたが、3/2の19:45くらいになってましたので、
我が家のPS3は関係なかったようです。(新型に入る?)
PlayStation®3にて発生していた障害について
PlayStation®3をご利用のお客様へ
うるう年計算と言えば、普通プログラムでは、
4で割って割り切れなければ平年、
割り切れれば、さらに100で割って、割り切れなければうるう年、
割り切れれば、さらに400で割って、割り切れればうるう年、
割り切れなければ平年とする、ロジックを組みます。
(順序を変えたり、YES/NOを逆にするロジックもあり得る)
2010はいきなり最初の「4で割って割り切れなければ平年」に当たりますので、
プログラミングの初心者でも間違いようのないコーディングなのですが、
一体どういうロジックを組んでいたんでしょう。
と言っても、これは任意の西暦の日付を扱う場合の論理の組み方で、
(ただし、グレゴリオ暦以前の日付では使えない)
その作られた時期より未来の日付しか扱わないとすれば、もっと簡単で、
例えば、今年製造したものであれば、年を4で割るだけのロジックで、
100と400で割るロジックを省いても、2099年までは正確に作動する。
(2100年は4で割れるけど、うるう年でないのでそこで狂う)
それよりももっと簡単なのは、年を直接閏年かどうか判定すればいい。
すなわち、年が2012、2016、2020、2024、2028、2032、、、、、
だったら、うるう年にすればいい。
この方法は私もやったことがあります。
どうせプログラムなんか10年も持てば(使えば)いい方ですから。
いや、中には30年くらい使っていたものもあるので、10年はちょっと言い過ぎた。
30年分でも先ほどの例でいえば、2036、2040を足せばいいわけだし、
2044、2048、2052、2056、2060くらいまで判断を足しておけば、
50年は大丈夫です。
ひょっとしてこの方法で2010をうるう年リストに入れちゃったのかな?
いやぁ、こんなニュース全く知りませんでした。
とりあえず今確認しましたが、3/2の19:45くらいになってましたので、
我が家のPS3は関係なかったようです。(新型に入る?)
PlayStation®3にて発生していた障害について
PlayStation®3をご利用のお客様へ
うるう年計算と言えば、普通プログラムでは、
4で割って割り切れなければ平年、
割り切れれば、さらに100で割って、割り切れなければうるう年、
割り切れれば、さらに400で割って、割り切れればうるう年、
割り切れなければ平年とする、ロジックを組みます。
(順序を変えたり、YES/NOを逆にするロジックもあり得る)
2010はいきなり最初の「4で割って割り切れなければ平年」に当たりますので、
プログラミングの初心者でも間違いようのないコーディングなのですが、
一体どういうロジックを組んでいたんでしょう。
と言っても、これは任意の西暦の日付を扱う場合の論理の組み方で、
(ただし、グレゴリオ暦以前の日付では使えない)
その作られた時期より未来の日付しか扱わないとすれば、もっと簡単で、
例えば、今年製造したものであれば、年を4で割るだけのロジックで、
100と400で割るロジックを省いても、2099年までは正確に作動する。
(2100年は4で割れるけど、うるう年でないのでそこで狂う)
それよりももっと簡単なのは、年を直接閏年かどうか判定すればいい。
すなわち、年が2012、2016、2020、2024、2028、2032、、、、、
だったら、うるう年にすればいい。
この方法は私もやったことがあります。
どうせプログラムなんか10年も持てば(使えば)いい方ですから。
いや、中には30年くらい使っていたものもあるので、10年はちょっと言い過ぎた。
30年分でも先ほどの例でいえば、2036、2040を足せばいいわけだし、
2044、2048、2052、2056、2060くらいまで判断を足しておけば、
50年は大丈夫です。
ひょっとしてこの方法で2010をうるう年リストに入れちゃったのかな?
※コメント投稿者のブログIDはブログ作成者のみに通知されます