Time between two dates

Lets say I have a time T1 = '2018-03-14 16:30:54' and another T2 = '2018-03-14 16:40:54' How can I find the total duration of the interval, as well as a "midpoint" in between said interval? My goal is to add an NaN entry every time there is a time gap greater than 10 minutes.
For example; '2018-03-14 16:30:54' '2018-03-14 16:40:54' %NaN entry would be added here '2018-03-14 17:20:15' '2018-03-14 17:30:15'
The purpose of adding this entry would be to remove discontinuity in graphs.

 Risposta accettata

the cyclist
the cyclist il 18 Apr 2018
Modificato: the cyclist il 18 Apr 2018
T1 = datetime('2018-03-14 16:30:54');
T2 = datetime('2018-03-14 16:40:54');
dT = T2 - T1;
T_mid = T1 + dT/2;

3 Commenti

Miguel Herrera
Miguel Herrera il 18 Apr 2018
Thank you. Follow up question, what can I do to make the following code work if dT > 00:12:00 disp('TRUE') else disp('FALSE') end
I keep getting TRUE even though the answer should be false. Does this have to do with the fact that dT is a duration and should also be compared to another duration using that if statement?
the cyclist
the cyclist il 19 Apr 2018
Modificato: the cyclist il 19 Apr 2018
There might be a better way, but ...
dT > duration('12:00','InputFormat','mm:ss')
dT > hours(12)
The cyclists code will work in R2018a or later, but in any case using hours seems much more readable to me.

Accedi per commentare.

Più risposte (2)

Peter Perkins
Peter Perkins il 19 Apr 2018
>> d = datetime(2018,3,14,16,[30 40],54)
d = 
  1×2 datetime array
   14-Mar-2018 16:30:54   14-Mar-2018 16:40:54
>> mean(d)
ans = 
  datetime
   14-Mar-2018 16:35:54
>> diff(d)
ans = 
  duration
   00:10:00
How about
T1 = datetime('2018-03-14 16:30:54')
T1 = datetime
14-Mar-2018 16:30:54
T2 = datetime('2018-03-14 16:40:54')
T2 = datetime
14-Mar-2018 16:40:54
T_mid = mean([T1, T2])
T_mid = datetime
14-Mar-2018 16:35:54

Categorie

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by