[Previous entry: "Wolf-Parkinson-White syndrome"] [Next entry: "プヒ〜♪ しなきゃいけないことをするんだよ"]
01/09/2004: "1/10 は 2^30"
スラドによる明日でepochから2^30秒
にもある通り、明日2004年1月10日22時37分07秒は、32bit UNIX OS の time_t が刻むところの1970年1月1日からの「秒数」が、丁度 time_t の限界の半分に達するそうなのだ。二進数二元論大好きの俺としてはとても割り切りのいい時間である。お祝いとして普段は元旦にしかやらない越年ジャンプをしたいと思う。
試しに ruby で計算した結果も /. にあり、cygwin からruby -e 'print Time::at(2**30)'してみると、確かに Sat Jan 10 22:37:04 GMT+9:00 2004と出る。てことは、限界点は 2**31-1 なので、Tue Jan 19 12:14:07 GMT+9:00。これが現行の UNIX の存続限界だ。(本当は**は半角。どうも greymatter のフィルタが違うタグに置換しちゃうので)
こういうケースを持ち出すのは不適切かもしんないけど、char と short と int と long で済む範囲でどうにかなるはずだったC言語発想では、「秒数をカウントする」という永続的な問題は2038年までしか持たない訳だ。なんかいろいろ示唆のある話だと思った。(もちろん、今どき固定長文字列で日付や数字をどうこうしようとお考えになるCOBOL発想(さらにはOracle発想)な方々は徐々に駆逐されることは信じてる)