gpt4 book ai didi

perl - 如何减去两个 HH :MM:SS times from each other in Perl?

转载 作者:行者123 更新时间:2023-12-03 15:31:12 26 4
gpt4 key购买 nike

我需要使用 Perl 从另一个中减去一个时间。两个时间都采用 HH:MM:SS 格式。

我可以简单地在冒号上拆分时间字符串,然后对每组数字执行数学运算,这相对简单:

$seconds_passed = $seconds_later - $seconds_earlier;
if ($seconds_passed < 0) { $seconds_passed = 60 - abs($seconds_passed); }

以此类推分钟和小时,然后通过将每个结果转换为秒并将它们相加来计算总时间。第二行是处理后面的数字实际上更高的情况,比如第一次是 23:58:59,第二次是 23:59:09,实际经过的秒数是 10,但计算会给出 09-59 = -50,所以从 60 中减去 (50) 的正数形式会得到正确的结果。

在这种情况下,我正在寻找可能的最简单、最小的解决方案(尽可能避免使用大型和复杂的模块),所以这可能是我选择的解决方案,但想知道是否有标准/内置方式做这种事?

最佳答案

Time::Piece 自 Perl 5.9.5 以来一直是核心 Perl 发行版的一部分:

use strict;
use warnings;
use Time::Piece;

my $t1 = Time::Piece->strptime( '23:58:59', '%H:%M:%S' );
my $t2 = Time::Piece->strptime( '23:59:09', '%H:%M:%S' );

print ( $t2 - $t1 ); # 10

关于perl - 如何减去两个 HH :MM:SS times from each other in Perl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19767816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com