Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

How to comput the date

Posted on 2001-08-01
4
157 Views
Last Modified: 2013-12-25
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
0
Comment
Question by:kplonk
  • 2
4 Comments
 
LVL 8

Accepted Solution

by:
bebonham earned 50 total points
ID: 6342987
#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
 
LVL 8

Expert Comment

by:bebonham
ID: 6342994
actually, no, since perl is so flexable, it will return the greatest

1/2/3

3 ranked highest
then 1
then 2

0
 
LVL 84

Expert Comment

by:ozo
ID: 6343321
return $yeara <=> $yearb or $montha <=> $monthb or $daya <=> $dayb;

#or

return (join'',reverse split'/',$a) cmp (join'',reverse split'/',$b);
0
 

Author Comment

by:kplonk
ID: 6346603
Just th job
0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Ever wondered how to display how many visitors you have online. In this tutorial I will show you an easy but effective way to display the number of online visitors in WhizBase. In this article I assume you have read my previous articles and know …
In this tutorial I will show you how to provide a dynamic RTF document on your website generated with data from your database. For this tutorial you will need Microsoft Word or WordPad, WhizBase and Microsoft Access. In this tutorial I will show …
Learn the basics of while and for loops in Python.  while loops are used for testing while, or until, a condition is met: The structure of a while loop is as follows:     while <condition>:         do something         repeate: The break statement m…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

789 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question