これはあなたに役立つはずです。いくつかの入力バリデーション(例えば、@ARGV
の要素が正しくフォーマットされていること、最初のものが2番目の日付などを表すことなどを確認したいと思うかもしれません。
use strict;
use warnings;
use DateTime;
unless(@ARGV==2)
{
print "Usage: myperlscript first_date last_date\n";
exit(1);
}
my ($first_date,$last_date)[email protected];
my $date=DateTime->new(
{
year=>substr($first_date,0,4),
month=>substr($first_date,4,2),
day=>substr($first_date,6,2)
});
while($date->ymd('') le $last_date)
{
print $date->ymd('') . "\n";
$date->add(days=>1);
}
ETA:それは何が起こっているのか明確ではない場合、我々は$first_date
に与えられた年、月、日パース、DateTime
対象として$date
作成します。その後、セパレータなしで年、月、日を印刷し続け、$last_date
になるまで、$date
を1日増やします。
これはクールです。ありがとう。私はそれをテストします。 – jdamae
素晴らしい小さなスクリプト。使い方を明確にしてくれてありがとう。これはとても便利です。 – jdamae
問題ありません。私はそれがうまくいってうれしいです。 :) –