comparing two dates.


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers comparing two dates.
# 1  
Old 07-10-2009
comparing two dates.

Hi I have yesterday date and todays date stored in two variables.

Today date is stored in variable -- testdate=`date +%m/%d/%Y`
I found the yesterday date and stored in variable -- ydate=$month'/'$day1'/'$year

Now i am trying to find out whether $testdate is less that $ydate.

I am finding this way in a IF condition

if [[ $toed -le $shud ]]
then
echo "yes correct time"
else
echo "not correct time"
fi
else

when i am executing this the condition is failing and going to else part.

PLease help me on this.

Thanks in advance.
Raju
# 2  
Old 07-10-2009
One option is to convert the date to a number (the UNIX epoch)...

Code:
#!/usr/bin/perl
use Time::Local;
print timelocal(0,0,0,@ARGV[1],@ARGV[0]-1,@ARGV[2])."\n";

Call this with three numbers: month day year

For example, if you put the above in a script called Epoch, then:

Code:
testdate=$(Epoch $(date '+%m %d %Y'))
ydate=$(Epoch $month $day1 $year
 
if [ $testdate -le $ydate ]; then
...
fi

# 3  
Old 07-10-2009
Another way is to convert 'MM/DD/YYYY' into 'YYYYMMDD' and compare numerically.
# 4  
Old 07-10-2009
Code:
#!/bin/ksh93

date1="01/10/2009"
date2="06/10/2009"

if (( $(printf "%(%s)T" "$date1") > $(printf "%(%s)T" "$date2") ))
then
    echo "date1 is after date2"
else
    echo "date1 is not after date2"
fi

# 5  
Old 07-13-2009
Quote:
Originally Posted by fpmurphy
Code:
#!/bin/ksh93
 
date1="01/10/2009"
date2="06/10/2009"
 
if (( $(printf "%(%s)T" "$date1") > $(printf "%(%s)T" "$date2") ))
then
    echo "date1 is after date2"
else
    echo "date1 is not after date2"
fi


Thanks for you answer fpmurphy.

You code is working but i got little problem.
The printf command is not working for the T. So i have modified your command littel bit. See the command i have modified.

if (( $(printf "%s" "$toed") < $(printf "%s" "$shud") ))

toed and shud are the two variables which contains only date in the format 07/12/2009 and its working for date.
now i am storing two time values in the format 22:02:53. now i need to compare the times also. how do i full fill it.

Thanks in advance
Raju
# 6  
Old 07-13-2009
Quote:
Thanks for you answer fpmurphy.

You code is working but i got little problem.
The printf command is not working for the T. So i have modified your command littel bit. See the command i have modified.

if (( $(printf "%s" "$toed") < $(printf "%s" "$shud") ))

toed and shud are the two variables which contains only date in the format 07/12/2009 and its working for date.
now i am storing two time values in the format 22:02:53. now i need to compare the times also. how do i full fill it.
Your "little bit" modification is invalid. You end up trying to numerically compare two strings. My example only works with Korn Shell 93 and requires the use of the %(%s)T syntax.
# 7  
Old 07-18-2009
Quote:
Originally Posted by fpmurphy
Your "little bit" modification is invalid. You end up trying to numerically compare two strings. My example only works with Korn Shell 93 and requires the use of the %(%s)T syntax.


Hi It worked for me. now i am able to peform functions.

Thanks a lot.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Error while comparing dates

Hi I am failing to write a script which compares a list of dates in a file with today's date. OS: Solaris 10 I have a file which has server names & dates, i need to compare the date in this file with today's date, if it is less than today it should print the server name. code i tried is ... (3 Replies)
Discussion started by: nanz143
3 Replies

2. UNIX for Dummies Questions & Answers

about dates, comparing and calculation

Hi, can we do date comparisons in unix? like if i give the two dates find which date is old one and which is new one and difference between the two dates in terms of hours,minutes,days and months. (1 Reply)
Discussion started by: vmachava
1 Replies

3. Shell Programming and Scripting

Comparing Dates

Hi I'm trying to compare the current date (dd-Mmm-yyyy) against a variable that is an extracted date from an sql script. Below is the code: datenow=`date '+%d-%h-%Y'` #datenow is the current date in the format dd-Mmm-yyyy sqlplus $dbuserid/$dbpassword @ $SCRIPT_PATH/business-date.sql >... (3 Replies)
Discussion started by: joyAV
3 Replies

4. Shell Programming and Scripting

Comparing dates

Hi, I want to compare today's date(DDMMYYYY) with yesterday(DDMMYYYY) from system date,if (today month = yesterday month) then execute alter query else do nothing.One more condition is change of year also i.e today is Jan1 2012 and yesterday is Dec 31 2011. The above rek i want in Shell... (4 Replies)
Discussion started by: kumarmsk1331
4 Replies

5. Shell Programming and Scripting

comparing dates

Hi guys I have a a variable called check_ts which holds a date value. this date value keeps refreshing every 15 minutes. I am going to start a cron job 5 minutes after the refresh. I have to check if the current date > 20 min of check_ts. how do i do that. thanks ragha (17 Replies)
Discussion started by: ragha81
17 Replies

6. Shell Programming and Scripting

Comparing two dates

Hi, Can some one guide me how to compare two dates in unix. TIA Gupta (5 Replies)
Discussion started by: guptan
5 Replies

7. Shell Programming and Scripting

Comparing last modified dates

Hi All. Can someone please give me an example of how I'd do a comparison to find out if the last modified date of a file is newer than yesterday (i.e. today - 1 day)? Example: if ; then echo "Do something..." fi Any ideas or examples? Thanks. (1 Reply)
Discussion started by: dmilks
1 Replies

8. Programming

comparing dates

hi is there a c function in linux for comparing dates. thanx in advance. svh (2 Replies)
Discussion started by: svh
2 Replies

9. Shell Programming and Scripting

comparing 2 dates

hi , I have two variables both containg dates, x= `date` and y= `date' their format being -> Fri Nov 12 22:59:50 MST 2004 how do I compare which one is greater. ->Can dates be converted into integer and then compared? ( one lengthy way would be to compare the words one by... (7 Replies)
Discussion started by: k_oops9
7 Replies

10. Shell Programming and Scripting

comparing 2 dates in Bourne shell

HI, I am able to find days difference using FIND command. However it is comparing between today and the last time it was modified. I now need to find the difference between a date specified by myself and the last time the file was modified. Is there a command which I can use or I have to... (1 Reply)
Discussion started by: scmay
1 Replies
Login or Register to Ask a Question