Perl-脚本时间计算器



需要帮助吗

我想创建一个脚本,将接收2个参数(时间)与以下格式AA:BB (AA从00到200和BB从0到59)。

并将其与时间相加,给出结果,如果结果超过24小时,则为1天,如果超过7天,则为1天。

例如,23:03 11:05表示1天,10:08,35:05 162:01表示1周,1天,5:06。

在我们开始之前,我想提醒你,不是每一天都是24小时的。一天的长度可以是22、23、24、25或26小时。这意味着您想要做的事情会在数据中添加错误。

我通常是第一个指导你使用一个模块,因为一个好的日期/时间模块是为了防止你做你所要求的。这意味着从头开始解决问题比使用模块更容易。事实上,甚至不可能用我通常使用的模块DateTime做你想做的事情。

my ($hours1, $minutes1) = split /:/, $arg1;
my ($hours2, $minutes2) = split /:/, $arg2;
my $hours   = $hours1   + $hours2;
my $minutes = $minutes1 + $minutes2;
$hours   += ($minutes - ($minutes % 60)) / 60;  $minutes %= 60;
my $days  = ($hours   - ($hours   % 24)) / 24;  $hours   %= 24;
my $weeks = ($days    - ($days    %  7)) /  7;  $days    %=  7;

似乎您需要使用这两个:DateTime和DateTime::Duration。

第一个可以表示日期,第二个可以表示时间要添加的量。然后,查看DateTime中的add_duration方法。

最新更新