How can I subtract the times without considering the date in question?
조회 수: 36(최근 30일)
표시 이전 댓글
I have a vector of time which are linked to dates but I only want to subtract the times from each other without considering the dates too. For example, I want to do 4:30 - 3:30 is equal to 1 hour and then 3:30 - 2:50 is equal to 40 minutes (0.6666667) and etc. I dont want Matlab to consider the date period basically.

I have this code for the time from 25-Apr to 01-May but it does take into account the date too:
out1m=24-(seconds(diff(datetime([T_Smooth{2,4};T_Smooth{3,4}])))/3600);
Can anyone help please? Thank you.
채택된 답변
Cris LaPierre
2021년 8월 11일
편집: Cris LaPierre
2021년 8월 11일
% create vector of datetimes
date = datetime(2019,[4;4;5;5],[24;25;1;2],[4;3;2;4],[30;30;50;30],0)
% Take difference of the times.
dt = diff(timeofday(date))
Use the hours function to turn hh:mm:ss into decimal hours if you want.
hours(dt)
추가 답변(1개)
Scott MacKenzie
2021년 8월 11일
편집: Scott MacKenzie
2021년 8월 11일
Here's one way to do this:
% test data (one month in 30-min increments)
dt = datetime(2021,4,1):minutes(30):datetime(2021,5,1);
% indices of datetime elements to compute hour difference between
n1 = 154;
n2 = 255;
x = datenum(dt(n2) - dt(n1));
hrs = rem(x,1) * 24
댓글 수: 5
Scott MacKenzie
2021년 8월 12일
Oops, yes, I used datenum as well. Thanks for pointing that out. The language to discourage use of this function could be a tad stronger, however. Below is what appears for xlsread, as an example.

참고 항목
범주
Find more on Dates and Time in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!