在perl中有一种方法可以从一个日期中减去10天,该日期将从文本文件传递,输出应该是01-jan-1999格式.
我正在使用下面的代码来读取文件,并获得日期后,我被减去日期.
date.txt
25-JAN-2013
#!/usr/bin/perl use warnings; use strict; use DateTime; my $inp= "date.txt"; my $todate; my $fromdate; open(date,"$inp"); while(<date>) { $todate = $_ ; print "$todate \n"; } $fromdate = $todate - 10 days ;
解决方法
这是一个使用DateTime的答案.
#!/usr/bin/perl use strict; use warnings; use 5.010; use DateTime::Format::Strptime; use DateTime; my $parser = DateTime::Format::Strptime->new( pattern => '%d-%B-%Y' ); my $input = '25-jan-2013'; my $todate = $parser->parse_datetime($input); my $fromdate = $todate->clone; $fromdate->subtract(days => 10); say 'From: ',$fromdate->strftime('%d-%B-%Y'); say 'To: ',$todate->strftime('%d-%B-%Y');