SPUG: Date::Manip infinite loop
Ronald J Kimball
rjk-spug at tamias.net
Sun Jan 13 12:27:56 PST 2013
On Sun, Jan 13, 2013 at 09:45:51AM -0800, Joel Grow wrote:
> Thanks for all the replies! I hadn't considered daylight saving time,
> but that does seem to be the culprit.
>
> The version of Date::Manip that "works" for me (ie, no infinite loop)
> is 5.44. The version that triggers the infinite loop is 6.24. I just
> installed the latest Date::Manip (6.38) and it still triggers the
> infinite loop.
>
> What's your recommendation to solve this? I simply want to iterate
> through N sequential days of a calendar (eg, 90 consecutive days,
> starting March 17).
Personally, I would recommend using Date::Calc instead, which can do
calculations with actual dates, rather than dates with implicit times.
use Date::Calc qw/ Add_Delta_Days /;
my $current_date = '2012/01/01';
while ($current_date le '2012/12/31') {
print "Current date is: $current_date\n";
$current_date =
sprintf "%04d/%02d/%02d",
Add_Delta_Days(split(m{/}, $current_date), 1);
}
Ronald
More information about the spug-list
mailing list