How to comput the date

I have a date string like this

dd/mm/yyyy

and i need to be able to do computations on it, such as is this date newer than this one

both dates are strings in the above format

how do i do this in perl
kplonkAsked:
Who is Participating?
 
bebonhamConnect With a Mentor Commented:
#a non module idea for such specific strings
#note pretty, but pretty fast

###just to show it works
chomp($date=<STDIN>);  #for dates greater than 1999
chomp($futureDate=<STDIN>);
chomp($pastDate=<STDIN>);
print cmpDate($date,$futureDate);
print "\n" . cmpDate($date, $pastDate);
print "\n" . cmpDate($futureDate, $date);
####


###this is the real function

sub cmpDate  #returns 1 for 2nd arg is greater, == 0, < -1
{
my($a,$b)=@_;
my($daya,$montha,$yeara)=split('/', $a);
my($dayb,$monthb,$yearb)=split('/', $b);
if($yeara>$yearb){ return -1};
if($yeara<$yearb){ return 1};
if($montha>$monthb){ return -1};
if($montha<$monthb){ return 1};
if($daya>$dayb){ return -1};
if($daya<$dayb){ return 1};
return 0;  #careful, returns 0 on error as well.
}
######
0
 
bebonhamCommented:
actually, no, since perl is so flexable, it will return the greatest

1/2/3

3 ranked highest
then 1
then 2

0
 
ozoCommented:
return $yeara <=> $yearb or $montha <=> $monthb or $daya <=> $dayb;

#or

return (join'',reverse split'/',$a) cmp (join'',reverse split'/',$b);
0
 
kplonkAuthor Commented:
Just th job
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.