minute_end - minute_start
示例:我在3:50开始计时,并在4:10停止。只看几分钟差异,差异是20分钟,这就是我想要的。但是,50-10是40.我如何解释这种情况?我确定它是if语句,但我不知道如何开始。
答案 0 :(得分:2)
也许您应该从一开始就使用time
跟踪事情?
但是,您可以使用Time::Piece
解析这些字符串以计算差异:
use strict;
use warnings;
use Time::Piece;
my $start = Time::Piece->strptime('3:50', "%H:%M");
my $stop = Time::Piece->strptime('4:10', "%H:%M");
my $diff = $stop - $start;
print $diff->minutes;
输出:
20
答案 1 :(得分:2)
这很粗糙,但可能已经足够了。
my $start_time = time;
# ...
my $end_time = time;
my $seconds_run = $end_time - $start_time;
my $minutes_run = $seconds_run / 60;
要获得更精确的时间安排,请参阅Time::HiRes。
答案 2 :(得分:1)
你可以像这样分配当前的本地日期,我修改米勒的版本:
use strict;
use warnings;
use Time::Piece;
use POSIX qw(strftime);
my $time1 = strftime("%H:%M", localtime(time));
# do something or wait
my $time2 = strftime("%H:%M", localtime(time));
my $start = Time::Piece->strptime($time1, "%H:%M");
my $stop = Time::Piece->strptime($time2, "%H:%M");
my $diff = $stop - $start;
print $diff->minutes;
答案 3 :(得分:0)
我找到了问题的答案,而且很简单。这是我原本想要做的事情,但是在我浏览答案时遇到它并没有点击。
如果我minute_end - minute_start
并且答案是否定的,我只需添加60分钟即可得到正确答案。
即:
10 - 50 = -40
-40 + 60 = 20