Desktop productivity for business analysts and programmers

Difference between two time periods

Accepted Solution Solved
Reply
Contributor
Posts: 66
Accepted Solution

Difference between two time periods

I would like to calculate difference between two time periods in days Hours, minutes ( how long it takes to complete the task)

for example difference between 12MAY2014:08:20:19:00 and  07MAY2014:08:00:45:00

Please help

Thanks,


Accepted Solutions
Solution
‎05-30-2014 10:49 AM
Super User
Posts: 9,878

Re: Difference between two time periods

data x;
t1 = '12MAY2014:08:20:19.00'dt;
t2 = '07MAY2014:08:00:45.00'dt;
days = int((t1-t2)/'24:00:00't);
time= mod((t1-t2),'24:00:00't); 
format time time8. t1 t2 datetime.;
run;


Xia Keshan

View solution in original post


All Replies
Super User
Posts: 19,194

Re: Difference between two time periods

Subtract the two records will give you the time in seconds. Then you can convert that to minutes/hours with some basic math (ie divide by 60). You can also try formatting using various time formats but because you cross days that might be an issue.

Contributor
Posts: 66

Re: Difference between two time periods

I did subtract the two . However, I like to get the results in Days Hours using format statement or functions?

Super User
Posts: 19,194

Re: Difference between two time periods

How would you like that to look? I don't believe there's a standard way to indicate days for duration in standard format.

Respected Advisor
Posts: 4,828

Re: Difference between two time periods

Take the difference between the two, the result is a number of seconds, then express in the required units:

data _null_;

t1 = '12MAY2014:08:20:19.00'dt;

t2 = '07MAY2014:08:00:45.00'dt;

dt = t1 - t2; /* time expressed in seconds */

dtStr = catx(":", put(dt/(24*60*60),6.0), put(mod(abs(dt),24*60*60),hhmm.));

put dt= dtStr=;

run;

PG

Message was edited by: PG To get the sign right all the time.

PG
Contributor
Posts: 66

Re: Difference between two time periods

Thanks. I will give this a try

Contributor
Posts: 47

Re: Difference between two time periods

Contributor
Posts: 22

Re: Difference between two time periods

Something like:

data _null_;


t1 = '12MAY2014:08:20:19.00'dt;

t2 = '07MAY2014:08:00:45.00'dt;

howlong = intck('second',t2,t1);

days = datepart(howlong);               /* basically taken from Professional SAS Programming Secrets, dating back to V6.03 and page 366-367     */

partday = timepart(howlong);

put days 3. ':' partday time8.

run;

Solution
‎05-30-2014 10:49 AM
Super User
Posts: 9,878

Re: Difference between two time periods

data x;
t1 = '12MAY2014:08:20:19.00'dt;
t2 = '07MAY2014:08:00:45.00'dt;
days = int((t1-t2)/'24:00:00't);
time= mod((t1-t2),'24:00:00't); 
format time time8. t1 t2 datetime.;
run;


Xia Keshan

Contributor
Posts: 66

Re: Difference between two time periods

Thanks  for sample code. I will give it  a try

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 9 replies
  • 558 views
  • 1 like
  • 6 in conversation