How to calculate time difference between start and end time of a process!


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to calculate time difference between start and end time of a process!
# 1  
Old 09-02-2010
How to calculate time difference between start and end time of a process!

Hello All,

I have a problem calculating the time difference between start and end timings...!

the timings are given by 24hr format..

Start Date : 08/05/10 12:55
End Date : 08/09/10 06:50


above values are in mm/dd/yy hh:mm format.

Now the thing is, 7th(08/07/10) and 8th (08/08/10) of August are saturday and Sunday. So I dont want those timings( i mean saturday and sunday- script should check for weekends and should not count the timings for weekends). Finally i need the output in hr format which is the difference between start and end timings excluding weekends.

can anybody help me in this.

Thank you.
# 2  
Old 09-02-2010
With GNU date

Code:
#!/bin/bash
StartDate="08/05/10 12:55"
EndDate="08/09/10 06:50"
HRS=$((($(date -d "$EndDate" +%s)-$(date -d "$StartDate" +%s))/3600))
WHRS=$HRS
for (( D=1; D<$((HRS/24+1)); D++ ))
do
   [ $(date -d "$StartDate $D days" +%u) -ge 6 ] && ((WHRS-=24))
done
echo "Working time elapsed='$WHRS'"

As a function
Code:
#!/bin/bash
Elapsed()	{
   HRS=$((($(date -d "$2" +%s)-$(date -d "$1" +%s))/3600))
   WHRS=$HRS
   for (( D=1; D<$((HRS/24+1)); D++ ))
   do
      [ $(date -d "$1 $D days" +%u) -ge 6 ] && ((WHRS-=24))
   done
   echo $WHRS
}
StartDate="08/05/10 12:55"
EndDate="08/09/10 06:50"
echo "Working time elapsed='$(Elapsed "$StartDate" "$EndDate")'"

# 3  
Old 09-02-2010
frans,

Thanks for your reply.

But its not working for me.. I am not that good at shell scripting.. I am a beginner in this.

at first when i run that function script i got the below error..

Code:
interpreter "usr/bin/bash" not found
interpreter "usr/bin/bash" not found
interpreter "usr/bin/bash" not found

later i deleted the first line i,e #!/bin/bash and then it gave the below error

Code:
syntax error at line 4 : `((' unexpected

pls tell me where i went wrong.

Thank you,.

---------- Post updated at 10:06 AM ---------- Previous update was at 10:04 AM ----------

and also for date -d it'll give illegal option -d
# 4  
Old 09-02-2010
What OS are you running ?
# 5  
Old 09-02-2010
Do you need it in HHMMSS format?

If not, you can check the environment variable called: ${SECONDS}
Code:
startTime=${SECONDS}
# Do some stuff here
endTime=${SECONDS}
diffTime=`expr ${endTime} - ${startTime}`
echo "Diff Time: [${diffTime}]"

# 6  
Old 09-02-2010
time {application name goes here}

the real time is the time that the process was running
# 7  
Old 09-02-2010
I do not have GNU date. So I got frustrated with limited options to get elapsed time in Unix,, I wrote a method in Java and using it..
If this works I could replace java method with this..

Code:
diffTime=`expr ${endTime} - ${startTime}`

Does this approach work if a main program is calling say 1. common functions included from other ksh programs and 2. included java programs(from jar/class) ? I know PID is same thrughout the execution of my program.

In other words can we use this to reliably find elapsed time to execute complex Admin scripts in Unix ?

say my environment variable is this
Quote:
SECONDS=1111
: once I execute abc.sh Does it start incrementing SECONDS as soon as any PID starts in the runtime and ends incrimenting before that PID exits from shell !?

Last edited by kchinnam; 09-03-2010 at 12:03 AM.. Reason: more doubts..
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. Linux

Process start time not showing correct time

Process start time is not showing the correct time: I had started a process on Jun 17th at 23:30:00. Next day morning when I run the command "ps -ef | grep mq", the process is showing the start date of Jun 17th but the start time is 00:16:41 Day/Date is setup correctly on the server. It... (2 Replies)
Discussion started by: hemangjani
2 Replies

5. Shell Programming and Scripting

How to get data between the start time and end time?

Hi, Can anyone help me how can I get the line that between the start time and end time. file1.txt 15/03/2009 20:45:03 Request: - Data of this line 15/03/2009 20:45:12 Response: - Data of this line 15/03/2009 22:10:40 Request: - Data of this line 15/03/2009 22:10:42 Response: - Data of... (1 Reply)
Discussion started by: tanit
1 Replies

6. 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

7. 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

8. 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

9. Shell Programming and Scripting

Start time/end time and status of crontab job

Is there anyway to get the start time and end time / status of a crontab job which was just completed? Of course, we know the start time of the crontab job since we are scheduling. But I would like to know process start and time recorded somewhere or can be fetched from a command like 'ps'. ... (3 Replies)
Discussion started by: thambi
3 Replies
Login or Register to Ask a Question