需要幫助。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