Check for incorrect argument data type or missing argument in call to function 'dateshift'.
1 次查看(过去 30 天)
显示 更早的评论
I have a function that calculates left hours till noon
input time: 18:56:19
output hours till noon: 17:03:41
Rounded hours left till noon, output should be 17:00:00
dateshift('17:03:41', 'start', 'hour', 'nearest');
Output: 17:00:00
But when my input hours are less 12 hours it throughs an error:
input time: 06:01:31
output hours till noon: 05:58:29
Rounded hours left till noon, output should be 06:00:00
dateshift('06:01:31', 'start', 'hour', 'nearest');
Check for incorrect argument data type or missing argument in call to function 'dateshift'.
Error in hoursLeftTillNoon (line 64)
hoursLeft = dateshift(hoursLeft, 'start', 'hour', 'nearest');
hoursLeft = output hours till noon
0 个评论
回答(1 个)
the cyclist
2021-11-16
编辑:the cyclist
2021-11-16
I get the error from your first statement as well:
% This statement would give an error
% dateshift('17:03:41', 'start', 'hour', 'nearest')
But not if I use a datetime as input:
dateshift(datetime('17:03:41'), 'start', 'hour', 'nearest')
4 个评论
the cyclist
2021-11-16
编辑:the cyclist
2021-11-16
I tried to replicate an example where hoursLeft is 17:03:01 using your code:
time1 = datetime('02:56:19', 'Format', 'HH:mm:ss');
time2 = datetime('20:00:00', 'Format', 'HH:mm:ss');
hoursLeft = time2 - time1;
hoursLeft = dateshift(hoursLeft, 'start', 'hour', 'nearest');
I believe this fails because hoursLeft is a duration, not a datetime.
So, I'm sorry, but I'm still confused about the exact code that does work, and the code that does not. Can you please provide a complete example of each case, that we can run?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Time Series Objects 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!