如何在字符数组中找到2次之间的小时差异?

时间:2017-05-09 01:39:58

标签: matlab date time

我在MATLAB中存储了两次字符数组。

a = '11:00 PM'
b = '07:30 AM'

我想找到2次之间的小时差异,在这个例子中应该是8.5小时。有没有简短的方法呢?我可以datenum两个数字,减去它们,datevec差异,从向量中提取小时和分钟,并将它们转换为小时,但这需要很多行。是否有更有效的方法来执行此操作或是否存在现有功能?

2 个答案:

答案 0 :(得分:1)

您可以通过使用datetime转换每个字符串,获取差异,然后使用hours转换结果来执行此操作:

numHours = hours(diff(datetime({a; b}, 'InputFormat', 'hh:mm a')));
numHours = numHours + 24.*(numHours < 0)

numHours =

    8.5000

第二行说明了您的示例中的条件,其中第二次必须在第二天发生时间差为正,因此24小时添加到(负)差。

答案 1 :(得分:0)

为时间添加日期 喜欢

https://www.facebook.com/gabriela.carrazano
https://www.facebook.com/yassmeen.ezzerqti
...

将字符串转换为日期时间

a = '1/1/2000 11:00 PM'
b = '1/1/2000 07:30 AM'

然后罚款两个日期之间的差异

x=str2num(strrep(a,':',''))
y=str2num(strrep(b,':',''))

这将给出两次之间的秒数