1

ファイルからランダムな日付を読み取ります。その日付から 4 か月を減算します。Perl でプログラミングしていますが、bash コマンドを使用できます。

2013 年 10 月 14 日であれば、2013 年 6 月 14 日になります。

どうもありがとう!

カレム

4

4 に答える 4

3
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-10-31T19:26:18.390 に答える
2
$ date '+%m/%d/%Y' --date='02/14/2013 4 month ago'
10/14/2012
于 2013-10-31T19:26:50.143 に答える
1

CPAN モジュール Date::Manipは、この種のものに最適です。Date::Manip は、営業日と休日を理解するという点で非常に強力です...そして、「次の火曜日」や「8 月の第 3 木曜日」などの任意の日付文字列を解析できます。

試してみてください。とても便利だと思います。

現在の問題を解決する短い例を次に示します。

#!/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";

...これにより、次の出力が生成されます。

Fri Oct 18 00:00:00 2013
Tue Jun 18 00:00:00 2013
于 2013-11-01T13:59:32.473 に答える