需要帮助。Perl脚本时间计算器
我想创建一个脚本,它将接收2个参数(时间),格式为AA:BB
(AA从00到200,BB从0到59)。
它应该添加那些时间并给出结果,如果结果超过24小时,它会使它成为1天,如果它超过每周7天。
例如,23:03 11:05会给1天和10:08,而35:05 162:01会给1周,1天和5:06。
需要帮助。Perl脚本时间计算器
我想创建一个脚本,它将接收2个参数(时间),格式为AA:BB
(AA从00到200,BB从0到59)。
它应该添加那些时间并给出结果,如果结果超过24小时,它会使它成为1天,如果它超过每周7天。
例如,23:03 11:05会给1天和10:08,而35:05 162:01会给1周,1天和5:06。
看来你需要使用这两个:DateTime和DateTime::Duration。
有了第一个,你可以代表日期,并与第二时间量要增加。然后,查看DateTime
中的add_duration
方法。
在我们开始之前,我想提醒你,不是每天都是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;
您似乎忘记提问了。你有什么问题? – ikegami 2013-03-26 04:51:55
注意:并非所有的日子都有24小时。 – ikegami 2013-03-26 04:53:06