我将从文件中读取随机日期,我想从该日期减去4个月。我是用Perl编程的,但我可以使用bash命令。
如果我有2013年10月14日,我将获得2013年6月14日。
非常感谢!
卡雷姆
发布于 2013-11-01 03:26:18
use DateTime::Format::Strptime qw( );
my $format = DateTime::Format::Strptime->new(
pattern => '%m/%d/%Y',
on_error => 'croak',
);
my $dt = $format->parse_datetime('10/14/2013');
$dt->subtract( months => 4 );
say $format->format_datetime($dt);发布于 2013-11-01 03:26:50
$ date '+%m/%d/%Y' --date='02/14/2013 4 month ago'
10/14/2012发布于 2013-11-01 21:59:32
CPAN module Date::Manip非常适合这类事情。Date::Manip非常强大,因为它可以理解工作日和假日...并且可以解析任意的日期字符串,如“下周二”或“八月的第三个星期四”。
你应该试一试,我打赌你会发现它很有用。
下面是一个简短的示例,它可以解决您当前的问题:
#!/usr/bin/perl
use Date::Manip;
my $d = new Date::Manip::Date("10/18/2013");
print $d->printf("%c"), "\n";
my $delta = new Date::Manip::Delta("4 months ago");
my $od = $d->calc($delta);
print $od->printf("%c"), "\n";...and这将生成以下输出:
Fri Oct 18 00:00:00 2013
Tue Jun 18 00:00:00 2013https://stackoverflow.com/questions/19714650
复制相似问题