我想在perl中创建一个脚本,给定一个输入时间(例如07:55)打印一个给定时间-15分钟,-25分钟,+ 1小时30分钟等的时间表。
Input: 07:55 (or 0755, or separate hours and minutes)
Expected output: Thing 1: 07:40
Thing 2: 07:30
Thing 3: 08:25
但是我在搜索可能的功能或简单的方法时遇到了麻烦(我只考虑一分钟的总和+添加if
以防大小超过59,等等)。有什么建议吗?谢谢。
答案 0 :(得分:2)
尝试使用DateTime模块 例如:
use DateTime;
my $h = 7;
my $m = 55;
my $dt = DateTime->new(
year => 2014,
month => 11,
day => 24,
hour => $h,
minute => $m,
);
printf "%02d:%02d\n", $dt->hour, $dt->minute; # prints "07:55"
$dt->subtract(minutes => 15);
printf "%02d:%02d\n", $dt->hour, $dt->minute; # prints "07:40"
# and so on...
答案 1 :(得分:2)
如果您不想安装外部模块,也可以使用Time::Piece。
这是一个单行代码,向您展示它的工作原理:
perl -e 'use Time::Piece; $ z= Time::Piece->strptime( "11:30", "%H:%M"); print $z-120;'
将返回
Thu Jan 1 11:28:00