compare dates


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting compare dates
# 1  
Old 09-06-2009
compare dates

I want to compare a list of dates in a file with today's date & list only dates that are less than only 60 days old . please help . the date in the file are in format

11-FEB-2009
02-FEB-2009
26-JAN-2009
24-JAN-2009
13-JAN-2009
16-DEC-2008
10-DEC-2008
01-DEC-2008
25-NOV-2008
19-NOV-2008
14-NOV-2008
09-NOV-2008
04-NOV-2008
26-OCT-2008

Thx
# 2  
Old 09-06-2009
What's your OS/shell ? And are you looking for a shell script or something else. If you have a large file to process, I would recommend languages like awk, perl or python. Otherwise, if your OS has the GNU date command, have a look here:
https://www.unix.com/tips-tutorials/3...tion-bash.html
# 3  
Old 09-06-2009
datefilter
Code:
#!/usr/bin/env ksh
PATH=/bin:/usr/bin
MAX_AGEDAYS=60
while read daterecord; do
  (( agedifference=($(date '+%s')-$(date -d $daterecord '+%s'))/24/3600 ))
  if (( agedifference < MAX_AGEDAYS )); then
    echo $daterecord
  fi
done < "$1"

Usage: datefilter datefile
You can replace "ksh" with "bash" that will work too.

or on the command line:
Code:
while read dr; do  if (( ($(date '+%s')-$(date -d $dr '+%s'))/24/3600 < 60 )); then echo $dr; fi; done < datefile


Last edited by Scrutinizer; 09-06-2009 at 05:31 AM..
# 4  
Old 09-06-2009
One way to do it in Perl:

Code:
$ 
$ cat f1
07-JUL-2009
08-JUL-2009
09-JUL-2009
01-SEP-2009
06-SEP-2009
$ 
$ 
$ ##
$ perl -nle 'BEGIN{use Date::Simple('today','ymd');
>            %mon=qw(JAN 1 FEB 2 MAR 3 APR 4 MAY 5 JUN 6
>                    JUL 7 AUG 8 SEP 9 OCT 10 NOV 11 DEC 12)}
>            chomp; @x=split/-/; $tdate = ymd($x[2],$mon{$x[1]},$x[0]);
>            print if $tdate-today() > -60' f1
09-JUL-2009
01-SEP-2009
06-SEP-2009
$ 
$

tyler_durden
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare Dates.

Hi All, I am entering StartDate and EndDate as parameters to script. Want to have an check saying, "If StartDate is greater than EndDate then don't execute the script". Pseudo Code: if then Execute script else exit 0 fi Can you please help me on the same? Thanks and... (4 Replies)
Discussion started by: Nagaraja Akkiva
4 Replies

2. HP-UX

Compare dates

Hi, I want to convert two datetime fields to find out if the difference is one hour, in linux I've done this by converting both the datetime values to unix epoch time and subtracting them to find out if the difference is more than 3600s, however this does not work in hp-ux. I've these... (3 Replies)
Discussion started by: Random_Net
3 Replies

3. Shell Programming and Scripting

The Best Way to Compare Dates

Hi to all. When you have to compare a lot of dates in a SH code, there is a way to directly compare? For example, how can I check if two dates differ in less than a week? Thank's for reading. (2 Replies)
Discussion started by: daniel.gbaena
2 Replies

4. Shell Programming and Scripting

Compare dates

Need to find all records where date in one filed is greater than date in other. Input: ABC 2 Filed3 CDG * X 20080903 20081031 180.00 ABD 2 Filed3 CDG * X 20081101 20081031 190.00 ABE 2 Filed3 CDG * X 20090903 20081031 120.00 ABC 2 Filed3 CDG * X 20080903 20081015 130.00 Output: ... (2 Replies)
Discussion started by: necroman08
2 Replies

5. Shell Programming and Scripting

How to compare the dates..

Hi all, I've written a script which gives the below information... End Date&Time: 2008-10-21 10.54.37 Now i want to calculate this time with the current time.. and if its more than 48 hours past with the current time it should echo "48 Hours back" Please help me.. thanks in... (4 Replies)
Discussion started by: suri.tyson
4 Replies

6. Shell Programming and Scripting

compare dates...

hi all :) how can in compare yyyy/dd/mm with yyyy/dd/mm in perl i want the result like grater than or less than the given date... thanks in advance (3 Replies)
Discussion started by: i_priyank
3 Replies

7. Shell Programming and Scripting

compare dates

Hi Gurus I am getting the timestamp of the last generated log file its like this "Oct 31 10:26" I want to compare this timestamp with the current date in shell script. I want to compare if the (timestamp-currentime) > 10 minutes how do i do this. Thanks Ragha (2 Replies)
Discussion started by: ragha81
2 Replies

8. Programming

How to compare dates in C/C++

Hi, Is there any system defined function to compare two dates in C/C++? Thanks (1 Reply)
Discussion started by: naan
1 Replies

9. Programming

How to compare two dates

Hi I am writing a unix program. In that, i should compare two dates. I would like to know how to compare two dates in unix-whether they are same or not. pls help (5 Replies)
Discussion started by: bankpro
5 Replies

10. Shell Programming and Scripting

compare two dates

I have a log file with date format like 10-Oct-02 13:20:29 ..... at the beginning of each line in the log file, and I need to grep data from this file to list the lines with date no longer than one days. I tried to use awk to do this but it looks very complicated to do it. Is there... (6 Replies)
Discussion started by: wchen
6 Replies
Login or Register to Ask a Question