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


Login or Register for Dates, Times and to Reply

 
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  
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  
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  
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  
What OS are you running ?
# 5  
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  
time {application name goes here}

the real time is the time that the process was running
# 7  
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 01:03 AM.. Reason: more doubts..
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #49
Difficulty: Easy
A USB hard drive is considered to be a primary storage device for personal computers.
True or False?

9 More Discussions You Might Find Interesting

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

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

3. Shell Programming and Scripting

Calculate the Time stamp difference

hi, I have a log file which gives time stamps hh:mm:ss.sssss format in which hh- hours , mm -minutes ss.sssss - seconds.microseconds I need to calculate the time diff between sent time stamp and received time stamp .... could any one please help me.. i am tryin to write a script but... (2 Replies)
Discussion started by: firestar
2 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

Featured Tech Videos