ファイルからランダムな日付を読み取ります。その日付から 4 か月を減算します。Perl でプログラミングしていますが、bash コマンドを使用できます。
2013 年 10 月 14 日であれば、2013 年 6 月 14 日になります。
どうもありがとう!
カレム
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);
$ date '+%m/%d/%Y' --date='02/14/2013 4 month ago'
10/14/2012
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