我目前正在阅读包含以下行的文本文件:
0 24000 97200 1 52200 95400 2 0 0 3 37800 180000 4 0 0 5 48000 95400 6 0 0
第一个值表示日期(0 = sunday, 1 = monday, ...)
。数值,例如 24000,表示总秒数。
最终我想得到这样的东西:
这是到目前为止的代码:
open(SCHEDULE, $schedule) or die print "Failed to open $schedule";
@lines = <SCHEDULE>;
@secondsfrom = (0,0,0,0,0,0,0);
@secondsto = (0,0,0,0,0,0,0);
@secondsextra = (0,0,0,0,0,0,0);
@days = ("sunday","monday","tuesday","wedsneday","thursday","friday","saturday");
foreach (@lines) {
($day, $fromtotalseconds, $tototalseconds) = split(/ /,$_,3);
@secondsfrom[$day] += $fromtotalseconds;
@secondsto[$day] += $tototalseconds;
}
for (my $i=0; $i<=6;$i++) {
print "\n@days[$i] @secondsfrom[$i] to @secondsto[$i]";
}
这一刻我卡住了!我一直在寻找如何将这些值转换为类似的东西,如:
周日从 24000 到 86400 (MAX) 星期二从 0 到 48000 和从 52200 到 86400 …
这就是它为我产生的:
周日 24000 至 97200 周二 52200 至 95400 …