Calculate date difference


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Calculate date difference
# 1  
Old 09-17-2013
Calculate date difference

Hi All

Can you please help me with UNIX script code that will work with ksh shell on UNIX server

My Requirement


Time1: 09/17/13101536

Time2: 09/16/13101536

I want to calculate the difference in minutes for the dates with format given above. I have a requirement to wait for 30 mins from the start of the job before taking the next action and in the mean time also check for existance of a trigger file if the file is present than I dont need to wait for 30 mins infact take the action immediately.

Thanks
# 2  
Old 09-17-2013
What's your system? Date math is easy on some systems and extremely difficult on others.
# 3  
Old 09-17-2013
Its an IBM AIX system

---------- Post updated at 03:29 PM ---------- Previous update was at 03:25 PM ----------

Hi I am using the following code it works but the problem is that it does not take into account the date it works fine if its just time difference calculation on a same date

Code:
 timediff=`awk -v "time=$stTime" -v "date=$(date +%H:%M:%S)" '
  function abs(x) {return x<0 ? -x : x}
  BEGIN {
    split(time, ary, /[:,]/); t_sec = 3600*ary[1] + 60*ary[2] + ary[3]
    split(date, ary, /:/);    d_sec = 3600*ary[1] + 60*ary[2] + ary[3]
    # output difference in minutes
    print abs(t_sec - d_sec)/60
  }

Moderator's Comments:
Mod Comment Please use CODE tags (rather than ICODE tags) for multi-line code segments.

Last edited by Don Cragun; 09-17-2013 at 04:54 PM.. Reason: Change ICODE tags to CODE tags.
# 4  
Old 09-17-2013
Date math is much less trivial than time math, and about your only standard option for it on AIX is perl:

Code:
#!/usr/bin/perl

use Time::Local;

my @TA1=split(/\//, shift);
my @TA2=split(/\//, shift);

for($N=6; $N>=0; $N-=2)
{
        @TA1[2+($N/2)]=substr(@TA1[2], $N, 2);
        @TA2[2+($N/2)]=substr(@TA2[2], $N, 2);
}

@TA1[7]=timelocal(@TA1[5], @TA1[4], @TA1[3], @TA1[1], @TA1[0], @TA1[2]);
@TA2[7]=timelocal(@TA2[5], @TA2[4], @TA2[3], @TA2[1], @TA2[0], @TA2[2]);

print @TA1[7] - @TA2[7], "\n";

Code:
$ ./tdiff.pl 09/17/13101536 09/16/13101536
86400

$

# 5  
Old 09-17-2013
Thank you so much for the reply but I am seeing that it does not give correct answer when I use 24 hrs time format like


./tdiff.pl 09/16/13231530 09/17/13001530 -3600


I was expecting to get 60 as the answer

Last edited by jimmyb; 09-17-2013 at 10:13 PM.. Reason: update
# 6  
Old 09-17-2013
Difference is in seconds, so -3600 is -60 mins
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Linux

How to calculate the quarter end date according to the current date in shell script?

Hi, My question is how to calculate the quarter end date according to the current date in shell script? (2 Replies)
Discussion started by: Divya_1234
2 Replies

2. Shell Programming and Scripting

awk to calculate difference of split and sum the difference

In the awk I am trying to subtract the difference $3-$2 of each matching $4 before the first _ (underscore) and print that value in $13. I think the awk will do that, but added comments. What I am not sure off is how to add a line or lines that will add sum each matching $13 value and put it in... (2 Replies)
Discussion started by: cmccabe
2 Replies

3. Shell Programming and Scripting

Calculate time difference between two lines

i grepped the time stamp in a file as given below now i need to calculate time difference file data: 18:29:10 22:15:50 (5 Replies)
Discussion started by: vivekn
5 Replies

4. Shell Programming and Scripting

Calculate time difference

I have time in a file in HH:MM:SS format as it contents(its not the file creation time). i need this to be converted to epoch time or time since 1970. The time is written into that file by a script, which i cannot modify. Im using AIX machine $ cat abc.txt 10:29:34 (2 Replies)
Discussion started by: gpk_newbie
2 Replies

5. Shell Programming and Scripting

How to calculate difference:?

Experts, file1 : Want to find the difference of $3 field from next line's 3rd field, The difference to be calculated from next lines 3rd field, to current lines lines 3rd field. file1 : Jun24_2013.06242013 3301244928 3133059904 167370640 95% Jun25_1124.06252013 3301244928... (4 Replies)
Discussion started by: rveri
4 Replies

6. Shell Programming and Scripting

How to Calculate the difference between two dates?

I want the difference between two following date using scripts in terms of no.of days. How I can accomplish this. lastdate=Tue Nov 13 10:30:56 2012 currdate=Wed Dec 15 15:58:21 PAKST 2012 Ouput should be like this: Your Password will expire after = 32 Days on Wed Dec 15 15:58:21 PAKST... (1 Reply)
Discussion started by: m_raheelahmed
1 Replies

7. Shell Programming and Scripting

Calculate age of a file | calculate time difference

Hello, I'm trying to create a shell script (#!/bin/sh) which should tell me the age of a file in minutes... I have a process, which delivers me all 15 minutes a new file and I want to have a monitoring script, which sends me an email, if the present file is older than 20 minutes. To do... (10 Replies)
Discussion started by: worm
10 Replies

8. Shell Programming and Scripting

How to calculate the time difference.

Hi All, I've written a script which reads all the systems backup information and saves it in a log file. ssh -l ora${sid} ${primaryhost} "tail -1 /oracle/$ORACLE_SID/sapbackup/back$ORACLE_SID.log" | awk '{print $3,$4,$5,$6}' >> ${RESULTFILE} The output comes as below: 2008-09-30 06.00.01... (2 Replies)
Discussion started by: suri.tyson
2 Replies

9. Shell Programming and Scripting

How to calculate the time difference...

Hi All, I've written a script which reads all the systems backup information and saves it in a log file. ssh -l ora${sid} ${primaryhost} "tail -2 /oracle/$ORACLE_SID/sapbackup/back$ORACLE_SID.log" |head -1 | awk '{print echo "PREVIOUS:-- Start Date&Time: " $3,$4,echo "|| End Date&Time:... (1 Reply)
Discussion started by: suri.tyson
1 Replies

10. Shell Programming and Scripting

How to calculate this time difference

Hi, Please help me in calculating the time difference between below mentioned timestamps. a=07/17/2007 02:20:00 AM MST b=07/17/2007 02:07:46 AM MST Thanks (2 Replies)
Discussion started by: Prat007
2 Replies
Login or Register to Ask a Question