How to calculate time duration in Linux?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How to calculate time duration in Linux?
# 1  
Old 05-22-2019
How to calculate time duration in Linux?

I want to calculate duration for below file in this format
Code:
SID   |   Date     |   Starttime   |Date         |End  time
 1607 |2019-04-05|13:06:42|2019-04-05|13:07:12
 2327 |2019-04-05|13:57:26|2019-04-05|13:57:43

O/p should be like this:
Code:
SID   |  Date     |   Starttime   |Date      |Endtime | Duration
 1607 |2019-04-05|13:06:42|2019-04-05|13:07:12  |  ?
 2327 |2019-04-05|13:57:26|2019-04-05|13:57:43  |  ?


Last edited by Scrutinizer; 05-22-2019 at 02:49 PM.. Reason: Code Tags
# 2  
Old 05-23-2019
Best to convert a formatted time string to a unix timestamp, then do your math, then convert the resulting unix timestamp back to a formatted time string.
# 3  
Old 05-23-2019
With Linux you should have GNU date available. Try


Code:
awk -F\|   '
        {printf "%s", "echo \"" $0 " |"
        }
NR == 1 {print " Duration\""
        }
NR > 1  {print  "$(( $(date +%s -d\"" $4 " " $5 "\") - $(date +%s -d\"" $2 " " $3 "\") )) \""
        }
' file | sh

SID   |   Date     |   Starttime   |Date         |End  time | Duration
 1607 |2019-04-05|13:06:42|2019-04-05|13:07:12 |30 
 2327 |2019-04-05|13:57:26|2019-04-05|13:57:43 |17


Two caveats:
1) with your data structure, the system won't know if you're talking 5th April, or 4th May.
2) Above will calculate difference in seconds only. No further formatting like HH:MM:SS will be done; that'll be up to you (search these fora, for example)
This User Gave Thanks to RudiC For This Post:
# 4  
Old 05-23-2019
It is always best to always get in the habit of converting time text string (formatted time) to a unix timestamp (a number).

Then, format the timestamp(s) math results as needed.

It's always best in programming to separate the time functions and processing of time from the formatting of strings, because it is trivial to convert strings to timestamps and timestamps to formatted strings.

FYI, Just about every date stored in our database here at unix.com is a unix timestamp. We generally don't store formatted date strings in DB tables (unless of course the date is part of some text in a post).
# 5  
Old 05-23-2019
Thanks for reply.
i want complete formatting in HH:MM:SS .
1st query
Code:
SID   |   Start Date     |   Start time   |End Date         |End  time | Duration
 1607 |2019-04-05|13:06:42|2019-04-05|18:08:12 |?
 2327 |2019-04-05|13:57:26|2019-04-05|19:03:43 |?

2nd query if i am entering in next date then how will calculate duration for example 5th April To 6th April.
Code:
SID   |   Start Date     |   Start    time   |End Date         |End  time | Duration
 1607 |2019-04-05|13:06:42|2019-04-06|18:08:12 |?
 2327 |2019-04-05|13:57:26|2019-04-06|19:03:43 |?


Last edited by vgersh99; 05-23-2019 at 04:56 PM.. Reason: please start using code tags!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to list files for particular duration of time .?

Hi there is a lot of file dated from last week till ofpresent date. if i want to list only last 3 days files using ls command how can i do it please suggest. below is the list of the file. and i want to list files from MAy 12 to May 16. Nov 22 2011 NSSM.UPPLSCPLB81 Jan 12... (2 Replies)
Discussion started by: scriptor
2 Replies

2. UNIX for Dummies Questions & Answers

Script shell calculate mean arrival request duration

hello, I have implemented this command : tshark -eth0 -T fiels -e frame.time et sip.Request-Line -z sip,stat > test2.txt the result of this command : test.txt: Aug 27, 2013 23:06:47.334270000 INVITE Aug 27, 2013 23:06:47.335045000 SIP/2.0 401 Unauthorized Aug 27, 2013... (1 Reply)
Discussion started by: Amouna
1 Replies

3. Shell Programming and Scripting

Perl ::duration of time in between dates

Hello All, I have two strings with date and time as follows.. $starttime= "06/11/2013 "; $starttime= "05:15"; $enddate="06/12/2013"; $endtime="04:45"; dates are in mm/dd/yyyy format and time in military format. and I am looking the duration of time(in minutes) in between dates. ... (3 Replies)
Discussion started by: scriptscript
3 Replies

4. Shell Programming and Scripting

Getting the Start, End time and duration using date command

Oracle Enterprise Linux We want to track how long a process takes to complete its execution. This is what we want in the schell script Before the process is started , get the time with date, hours and minutes execute the process After the process has ended , get the time with date,... (5 Replies)
Discussion started by: omega3
5 Replies

5. Shell Programming and Scripting

Calculating the epoch time from standard time using awk and calculating the duration

Hi All, I have the following time stamp data in 2 columns Date TimeStamp(also with milliseconds) 05/23/2012 08:30:11.250 05/23/2012 08:30:15.500 05/23/2012 08:31.15.500 . . etc From this data I need the following output. 0.00( row1-row1 in seconds) 04.25( row2-row1 in... (5 Replies)
Discussion started by: ks_reddy
5 Replies

6. Shell Programming and Scripting

Convert Date from File and Calculate Duration

Hi - I am looking for a little help to read in 2 date fields from a file in format: 20120508134012.3 yyyymmddhhmmss.tenths of a second So i want to: 1. Read in the 1st date from the file 2. Read in the second date from the file 3. Calculate the difference in minutes (or seconds) 4. ... (5 Replies)
Discussion started by: Newbie2012
5 Replies

7. Shell Programming and Scripting

How to get time duration between two human readable time stamp in Unix?

Here is two time I have: Jul 12 16:02:01 Jul 13 01:02:01 and how can I do a simple match to get difference between two time which is 09:00:00 Thanks in advance. (3 Replies)
Discussion started by: ford99
3 Replies

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

9. Shell Programming and Scripting

date duration fail to calculate

Hi Everyone, I was very sad after a long way but still cannot figure out the duration between two date. $date1="20090812 23:48:56"; $date2="20090813 00:01:37"; The output will be "001241". I did the following tries, like print localtime(UnixDate(ParseDate("20090812 23:48:56"),"%s"));... (2 Replies)
Discussion started by: jimmy_y
2 Replies

10. Solaris

Finding list of modified files for a particular time duration

Hi , I am trying to find out the List of files modified or added aftter installation of any component on SUN solaris box . But i am not able to do it using ls or find command . Can somebody help me out ? Thanks Sanjay Gupta (2 Replies)
Discussion started by: sanajyg_mnit
2 Replies
Login or Register to Ask a Question