• ベストアンサー

指定日からの経過分数

Perlでプログラムを書いているのですが 20081202123000といった文字列から 19700101000000からの経過分数を取得したいのですが time関数を使えば出来そうだというのはわかるのですが どのようにだしたらよいのかわかりません。 ご教示おねがいいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

timelocalを使えばできますが、timelocalの引数は 年、月、日、時、分、秒を分けて与える必要があります。 use Time::Local; my $strtime = "20081202123000"; my($year, $month, $day, $hour, $minute, $second) = ($strtime =~ /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/); my $time = timelocal($second, $minute, $hour, $day, $month-1, $year); といった感じで。 (timelocal/localtime は、月が0~11で表されるので、1ずらす必要があることに注意) あとは、引き算して60で割れば経過分数になりますね。

nana_poco
質問者

お礼

ありがとうございます。うまくいきました。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

Time::Local の timelocal を使うと 1970年 1月 1日 0:00 (GMT) から指定した時刻までの経過時間が秒単位でわかるらしい. ただしうるう秒に対応しているかどうかは不明.

nana_poco
質問者

補足

ありがとうございます。 わたしもそれを調べたのですが timelocal(20081202123000)と書いてもエラーになってしまうのです。

関連するQ&A

専門家に質問してみよう