Date comparison


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Date comparison
# 1  
Old 12-13-2006
Date comparison

Hi all,

I've a shell script which runs on Bourne shell. I've to do a date comparison. If the value of the supplied parameter(in format YYYYMMDD)is greater than todays's date(format YYYYMMDD), it should prompt the user that the supplied date is greater than today's date. The script is given below.

Code:
#! /bin/sh
dateval=`date +%Y%m%d`
if [ $# -eq 0 ]
then
dateval=`date +%Y%m%d`
elif [ $1 -gt $dateval ];then
echo "Supplied date is greater than current date"
else
 dateval=$1
fi

The script gives the desired result.But, is there any other alternative to using 'gt' other than DateCalc function.

Any help will be appreciated.
Thanks,
Sumesh
sumesh.abraham
# 2  
Old 12-13-2006
If you have perl you can use this

Code:
cal_diff
###############################
#!/bin/perl
use Time::Local;
my $year=shift;
my $month=shift;
my $day=shift;
my $time = timelocal(0,0,23,$day,$month-1,$year-1900);
($DAY, $MONTH, $YEAR) = (localtime)[3,4,5];
my $now = timelocal(0,0,23,$DAY, $MONTH, $YEAR);
my $diff = $now - $time;
print "$diff\n";
###############################
Usage :
cal_diff yyyy mm dd

#! /bin/sh -vx
if [ $# -eq 0 ]
then
dateval=`date +%Y%m%d`
elif [ $(cal_diff $1 $2 $3) -lt 0 ];then
echo "Supplied date is greater than current date"
else
 dateval=$1$2$3
fi

# 3  
Old 12-13-2006
Thanks for the reply.

I don't have perl. Is there any alternative in UNIX?

Thanks,
Sumesh
sumesh.abraham
# 4  
Old 12-13-2006
Why cant you use -gt ?

Try replacing
Code:
elif [ $1 -gt $dateval ];then

with
Code:
elif [ $(($1 - $dateval)) > 0 ]; then

# 5  
Old 12-13-2006
Vino,
Thanks for the reply.

I tried running the following code

Code:
    elif [ $(($1 - $dateval)) > 0 ];then
       echo "Supplied date is greater than current date

but, the following error is displayed.

Code:
./shellpgm33.sh: syntax error at line 13: `(' unexpected

Why does this happen?.

Thanks in advance,
Sumesh
sumesh.abraham
# 6  
Old 12-13-2006
Quote:
Originally Posted by sumesh.abraham
Code:
./shellpgm33.sh: syntax error at line 13: `(' unexpected

Why does this happen?.
Well, what is line 13 ? Can you post the complete script ? Also post the output of uname -a
# 7  
Old 12-14-2006
Here is the complete script.
Code:
#! /bin/sh

dateval=`date +%Y%m%d`
if [ $# -eq 0 ]
then
dateval=`date +%Y%m%d`
elif [ $1 -gt $dateval ];then
echo "Supplied date is greater than current date"
else
 dateval=$1
fi
echo $dateval
echo $(($1 - $dateval))

I did
Code:
uname -a

and the result is
Code:
SunOS secmstqatmp 5.8 Generic_117350-33 sun4u sparc SUNW,UltraAX-i2

Thanks in advance,
Sumesh
sumesh.abraham
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk IF date comparison help

Hey everyone, I'm trying to create a script using awk and if that will list all of our aws tapes that have archived date that is past 90 days from todays current date, so that I can pass that to my aws command to remove. The fifth column is the creation date in epoch/seconds, so I'm... (13 Replies)
Discussion started by: beyondmondays
13 Replies

2. UNIX for Dummies Questions & Answers

Date comparison

I have below txt file 02.05.2014 10.05.2014 17.09.2014 My requirement is the user enter date field should compare the input file if user enter date as 12.03.2013 it should compare with all date one by one from input file 12.03.2013 -ne 02.05.2014 12.03.2013 -ne 10.05.2014... (3 Replies)
Discussion started by: stew
3 Replies

3. Shell Programming and Scripting

Date Comparison

Hi Need some function or step to compare the date as given below. Example: Date_1: 25/04/2013 Date_2: 20/07/2012 if Date_1 is greater than Date_2 then do... else do.. fi Need exact unix steps to compare the above condition Use code tags please, see PM. (5 Replies)
Discussion started by: anshaa
5 Replies

4. Shell Programming and Scripting

Date comparison script

hi, I have a file named user.cfg under /var/member/ #user.cfg file under /var/member/ login user: root #how are you login pass: admin #where are you M: user1 pass1 #20121008 M: user2 pass2 #20111230 M: user3 pass3 #20091220 M: user4 pass4 #20070210 M: user5 pass5 #20130708 M:... (3 Replies)
Discussion started by: baris35
3 Replies

5. UNIX for Dummies Questions & Answers

date comparison

Hi friends, I would like to compare two dates in an IF statement. This is what I am trying, but it doesn't work. date=20120122 minus=6 if ; then ... fi what would the IF clause looks like? Thanks! :) (5 Replies)
Discussion started by: kokoro
5 Replies

6. Solaris

Date comparison

Date comparison Hello all I am writing a scrip that will take action so long as the date with in the file is older than 3 months. The file will contain multiple rows of data. Each row will probably start with the date. My question... What is the exact code that should be used for date... (1 Reply)
Discussion started by: UofU
1 Replies

7. Shell Programming and Scripting

Date comparison using ksh

Hi All, i have a text sample below. rootdbs 1 0 01/03/2010.03:11 physdbs 2 0 01/03/2010.03:17 logdbs01 3 0 01/03/2010.03:17 logdbs02 4 0 01/03/2010.03:17 dbs01 5 0 01/03/2010.03:17 dbs02 6 0 01/03/2010.03:17 dbs03 7 0 01/03/2010.03:17 dbs04 ... (4 Replies)
Discussion started by: informix2009
4 Replies

8. Homework & Coursework Questions

Date comparison with 'string date having slashes and time zone' in Bash only

1. The problem statement, all variables and given/known data: I have standard web server log file. It contains different columns (like IP address, request result code, request type etc) including a date column with the format . I have developed a log analysis command line utility that displays... (1 Reply)
Discussion started by: TariqYousaf
1 Replies

9. Shell Programming and Scripting

date comparison in bash

Hi I have this simple script: #!/bin/bash date1=2009:07:15:12:36 date2=2009:07:15:12:16 echo $date1 echo $date2 datediff= #datediff=date1-date2 echo datediff is$datediff How do i return the difference in seconds? (6 Replies)
Discussion started by: carp.dk
6 Replies

10. Shell Programming and Scripting

date comparison

How can I compare two dates in String format (eg. May 23 2006 05:30:21) in AWK? Thanks (2 Replies)
Discussion started by: dkr123
2 Replies
Login or Register to Ask a Question