in reply to How to increase date in a loop
use strict; use Time::Local; my $start_date = '2005-07-12'; my $end_day = '2005-08-03'; my @start_date_list = split /-/, $start_date; my @end_day_list = split /-/, $end_day; my $start_day_num = timelocal(0, 0, 0, int($start_date_list[2]), int($ +start_date_list[1]), int($start_date_list[0])); my $end_day_num = timelocal(0, 0, 0, int($end_day_list[2]), int($end_d +ay_list[1]), int($end_day_list[0])); my $count = ($end_day_num - $start_day_num)/86400; for my $day (0..$count){ my (undef, undef, undef, $day, $month, $year, undef, undef, undef) = localtime($start_day_num + 86400*$day); my $str = ($year+1900)."-".(length($month)==1?"0".$month:$month)."- +".(length($day)==1?"0".$day:$day)."\n"; print "$str"; }
|
|---|