Note that using time()+$nDays*24*60*60 can fail when done near midnight near transitions to or from daylight savings time. This is fairly easy to fix, tho:
my $now= time(); my($y,$m,$d)= (localtime( $now + 60*60*(12-(localtime($now))[2]) + $nDays*24*60*60 ))[5,4,3]; print sprintf "%04d-%02d-%02d", 1900+$y, 1+$m, $d; print $/;
Note that the use of $now is required to avoid one race condition but that it isn't enough since doing this calculation near midnight still has a race condition of whether "today" ends up being before mignight or after midnight. So you need to use $now to set all of the dates that get recorded. For this reason, I prefer {NULE}'s solution. But I wanted to point out the problem with two of the other solutions.
- tye (but my friends call me "Tye")In reply to (tye)Re: Add A Number of Days to Today's Date
by tye
in thread Add A Number of Days to Today's Date
by rline
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |