#!/usr/bin/perl -w
use strict;
print CompareDates(
{
DATE_1 => "01/10/2006 4:39:11 PM",
DATE_2 => "02/10/2006 4:39:11 PM",
LIMIT => 72, # Hours
PATTERN => '%d/%m/%Y %l:%M:%S %P' # Optional
}
);
print CompareDates(
{
DATE_1 => "01/10/2006 4:39:11 PM",
DATE_2 => "04/10/2006 4:39:11 PM",
LIMIT => 72, # Hours
}
);
print CompareDates(
{
DATE_1 => "01/10/2006 4:39:11 PM",
DATE_2 => "06/10/2006 4:39:11 PM",
LIMIT => 72, # Hours
}
);
sub CompareDates {
my $params = shift;
use DateTime::Format::Strptime;
my $parser = DateTime::Format::Strptime->new(
pattern => $params->{PATTERN} || '%d/%m/%Y %l:%M:%S %P'
);
my $dt1 = $parser->parse_datetime($params->{DATE_1});
my $dt2 = $parser->parse_datetime($params->{DATE_2});
my $dtchk = $dt2->subtract(hours=>$params->{LIMIT});
my $pref = "The difference between '$params->{DATE_1}' AND
'$params->{DATE_2}' is";
my $suf = "$params->{LIMIT} hours.\n";
return "$pref bigger than $suf" if ($dtchk > $dt1);
return "$pref equal to $suf" if ($dtchk == $dt1);
return "$pref smaller than $suf" if ($dtchk < $dt1);
}
Prints:
The difference between '01/10/2006 4:39:11 PM' AND
'02/10/2006 4:39:11 PM' is smaller than 72 hours.
The difference between '01/10/2006 4:39:11 PM' AND
'04/10/2006 4:39:11 PM' is equal to 72 hours.
The difference between '01/10/2006 4:39:11 PM' AND
'06/10/2006 4:39:11 PM' is bigger than 72 hours.
|