我没有使用perl的经验,我需要创建一个在添加偏移后打印日期的实用程序,格式字符串是strftime格式字符串。
格式:./ adddate number_of_days [format_string]
示例:./ adddate -1“%a,%b%d”#打印昨天的日期
答案 0 :(得分:3)
经过一些研究后,我能够编写代码:
#!/usr/bin/perl
use DateTime;
$offset = $ARGV[0];
$format = $ARGV[1];
$dt = DateTime->now();
$dt->add( days => $offset );
print $dt->strftime($format)."\n";
答案 1 :(得分:0)
要添加天数,只需以分解形式(由tm_mday
返回)递增时间的localtime
字段。然后,mktime
- localtime
往返将对其进行重新规范化,从而计算月份或年度翻转。
use strict;
use feature qw( say );
use POSIX qw( mktime strftime );
my $offset = $ARGV[0];
my $format = $ARGV[1];
my @t = localtime;
$t[3] += $offset; # tm_mday field
say strftime( $format, localtime mktime @t );
所有核心模块。