in reply to Subtracting and Comparing Two Dates
# Always use gmtime and timegm when # dealing with dates without times. use Time::Local qw( timegm ); # Replace with your input. my $then_date_str = 'YYYYMMDD'; my $then_date = do { my ($y, $m, $d) = $then_date_str =~ /^(.{4})(.{2})(.{2})\z/; $m--; timegm(0, 0, 0, $d, $m, $y) }; my $now_date = do { my ($y, $m, $d) = (localtime())[5,4,3]; timegm(0, 0, 0, $d, $m, $y) }; my $diff = $now_date - $then_date; my $diff_days = int($diff / (24*60*60)); if ($diff_days < -1) { printf("%d days ago\n", -$diff_days); } elsif ($diff_days == -1) { print("yesterday\n"); } elsif ($diff_days == 1) { print("tomorrow\n"); } elsif ($diff_days > 1) { printf("%d days from now\n", $diff_days); } else { print("today\n"); }
Notes:
Update: Oops, I was subtracting from $m twice. Fixed.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Subtracting and Comparing Two Dates
by BaldPenguin (Friar) on Jan 08, 2007 at 23:03 UTC | |
by ikegami (Patriarch) on Jan 08, 2007 at 23:11 UTC | |
by BaldPenguin (Friar) on Jan 08, 2007 at 23:18 UTC | |
by ikegami (Patriarch) on Jan 09, 2007 at 01:05 UTC | |
by jettero (Monsignor) on Jan 08, 2007 at 23:35 UTC | |
|
Re^2: Subtracting and Comparing Two Dates
by mindful07 (Initiate) on Jan 11, 2007 at 22:29 UTC | |
by ikegami (Patriarch) on Jan 11, 2007 at 22:45 UTC | |
by mindful07 (Initiate) on Jan 11, 2007 at 23:34 UTC |