Check for incorrect argument data type or missing argument in call to function 'dateshift'.
9 ビュー (過去 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 で Dates and Time についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!