時間を分に直すために知っておくべきことをまとめる。
1 日は 24 時間。分で換算すると、24 * 60 = 1440 となる。
% bc -l 1/1440 .00069444444444444444
1 分は 1 日で数えると、6.9e-04 日である。
観測地は東京とニューヨークの 2 個所。 時刻は、国際的時刻基準 (UTC) で数えて、 日本は 9 時間進んでおり、(UTC+0900)
日本時間+0900
と表す。Time 関数を使って、irb で見てみよう。
% irb irb(main):001:0> Time.now => Wed Nov 12 14:29:52 +0900 2008
一方ニューヨークでは、 東部標準時 (Eastern Standard Time) のとき (冬場) は 5 時間遅れているが (UTC-0500) 夏時間が採用されているので、夏は東部夏時間 (Eastern Daylight Time) で、4 時間の遅れ (UTC-0400) となる。
アメリカの夏時間の期間は 3 月の第 2 日曜日午前 2 時から 11 月の第 1 日曜日午前 2 時までの期間である。 夏時間かどうかを調べるには、isdst を使う。
% irb irb(main):001:0> Time.mktime(2008,11,10,0,0,"EST").isdst => false
cal コマンドを使って、当該の年の夏時間を確認せよ。
Time 関数を使ってみよう。Time.now.to_i で、秒で換算された数値が出る。 分単位で調べるため、60 で割る。正確な数値を出すために、to_f にして、60 で割ろう。
% irb irb(main):001:0> Time.now.to_f/60 => 20441144.559453
Time.local(2008,1,1,0) と指定すると、日本時間の表示が出るので、 これに to_f を足せばよい。 また、UTC の場合は、 Time.utc(2008,1,1,0) とする。
データを読みこんで、 UTC で 2008 年元旦から何分経っているかを調べるには、 このようになる。 実際はデータを決めうちではなく、読みこませるように変更しなくてはならない。