date |
19/05/2013 |
date_comp compare deux dates. La fonction retourne -1 si la première date est inférieure à la seconde, 1 si elle est supérieure et 0 si elle est égale.
use Time::Local;
#-----------------------------------------------------------------------
# date_comp compare 2 dates
#-----------------------------------------------------------------------
sub date_comp{
($date,$date2)=@_;
my ($mday,$mon,$year,$hour,$min,$sec) = split(/[\s\/:]+/, $date);
my $time = timelocal($sec,$min,$hour,$mday,$mon-1,$year);
my ($mday,$mon,$year,$hour,$min,$sec) = split(/[\s\/:]+/, $date2);
my $time2 = timelocal($sec,$min,$hour,$mday,$mon-1,$year);
if ($time < $time2) { return 1; }
if ($time > $time2) { return -1; }
return 0;
}
#.......................................................................
$date='23/10/2012 11:35:00';
$date2='15/05/2013 17:35:00';
print date_comp($date,$date2);
print date_comp($date,$date);