Как найти разницу во времени между двумя разами в MATLAB в произвольном формате? - PullRequest
2 голосов
/ 15 октября 2019

В программном обеспечении MATLAB я хочу рассчитать время работы алгоритма в произвольном формате. Это работает, но как настроить его, чтобы показать этот формат: год: месяц: день час: минуты: секунды: милисекунды

Он показывает: '01 00, 0000 00:00:06 051 ', результатне правильно из-за 01 на первый (месяц).

startTime=datetime('now');
%some working.....
endTime=datetime('now');
workedTime= datestr((endTime-startTime), 'mm dd, yyyy  HH:MM:SS FFF');

1 Ответ

2 голосов
/ 15 октября 2019

Встроенной функции MATLAB нет, поскольку длительность в месяцах проблематична (месяц может длиться 28, 29, 30 или 31 день).

Вы можете использовать между функцией, которая возвращает календарь математические различия.

Требуется ручное форматирование, поскольку функции календаря не поддерживают желаемый формат.
Сначала используйте split , чтобы разделить продолжительность календаря на годы, месяцы, дни, время, затемиспользуйте sprintf для ручного форматирования:

[y,m,d,t] = split(between(startTime, endTime), {'years','months','days','time'});
workedTime = sprintf('%02d %02d, %04d  %s', m, d, y, datestr(t, 'HH:MM:SS FFF'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...