Let's attack this slightly differently:
# get date 90 days ago my ($start_d, $start_m, $start_y) = (localtime(time - 90 * 86_400))[3,4,5]; my $start = sprintf('%4d-%02d-%02d', $start_y+1900, $start_m+1, $start_d); foreach (<FILE>) { my ($y, $m, $d) = (split /,/)[28,29,30]; my $date = sprintf('%4d-%02d-%02d', $y+1900, $m+1, $d); if ($start gt $date) { # record is more than 90 days old } else { # record is within 90 days } }
Update: buckaduck has caught me writing code before drinking coffee. And didn't even point out the worst problems with the code. The new version is (hopefully) better.
Update2: ergh! I give up. This time I was using numeric comparisons instead of string comparisons.
--"The first rule of Perl club is you don't talk about Perl club."
In reply to Re: Comparing Dates With a Twist
by davorg
in thread Comparing Dates With a Twist
by suggus
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |