次のような時間差のある文字列があります。
12:03:22 <- where
^ ^ ^
| | +minutes
| +hours
+days
必須は分、時間、日のみ省略できますが、ここではたとえば120:30、つまり120時間30分にすることができます。
NOW +差の日付と時刻を計算する必要があるため、たとえば次のようになります。
when now is "May 20, 13:50" and
the string is "1:1:5"
want get as result: "2012 05 21 14 55" (May 21, 14:55)
DateTimeは知っていますが、入力文字列を解析する簡単な方法は何ですか?私はここよりも良い方法だと確信しています:
use _usual_things_;
my ....
if($str =~ m/(.*):(.*):(.*)/) {
$d = $1; $h = $2; $m = $3;
}
elsif( $str =~ m/(.*):(.*)/ ) {
$h = $1; $m = $2;
} elsif ($str =~ m/\d+/ ) {
$m = $1;
}
else {
say "error";
}
そして、解析された日、時間、分を現在の日付に追加するにはどうすればよいですか?