-1

Perl を使用してテキスト ファイル DOW YYYY-MM-DD H:MM:SS.S から読み取り、10 進数の分 MM.MMMM を出力する必要があります。入力テキストファイルが与えられた場合

Fri 2013-06-14 0:59:15.3
Sat 2013-06-15 1:01:30.6
Sun 2013-06-16 1:03:45.9

10 進数の分の値を計算したい

(60*0)+59+(15.3/60) = 59.2550
(60*1)+01+(30.6/60) = 61.5100
(60*1)+03+(45.6/60) = 63.7600

そして出力

(59.2550, 61.5100, 63.7600)
4

3 に答える 3

3

テキストファイルのすべての行がそれ自体の日付であり、読み取り元のファイルが同じディレクトリにあり、という名前input.txtであると仮定すると、次のようになります。

use strict;
use warnings;

my @result = ();

{
  open (my $file, "<", "input.txt") or die "cannot open < input.txt: $!";
  while(<$file>){
    my @current = split(/:/,substr($_,15));
    push(@result, (60*$current[0]) + $current[1] + ($current[2]/60));
  }
}

print "(" . join(',',@result) . ")";
于 2013-06-18T14:44:42.823 に答える