- ベストアンサー
指定日からの経過分数
Perlでプログラムを書いているのですが 20081202123000といった文字列から 19700101000000からの経過分数を取得したいのですが time関数を使えば出来そうだというのはわかるのですが どのようにだしたらよいのかわかりません。 ご教示おねがいいたします。
- みんなの回答 (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で割れば経過分数になりますね。
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
Time::Local の timelocal を使うと 1970年 1月 1日 0:00 (GMT) から指定した時刻までの経過時間が秒単位でわかるらしい. ただしうるう秒に対応しているかどうかは不明.
質問者
補足
ありがとうございます。 わたしもそれを調べたのですが timelocal(20081202123000)と書いてもエラーになってしまうのです。
お礼
ありがとうございます。うまくいきました。