2016-04-13 2 views
0

У меня эти две даты.Как я могу вернуться вовремя, используя данные?

startTime = '4/2/2004 12:45' 
endTime = '4/3/2004 18:15' 

Я хочу найти время, равное 1,5 * (startTime-endTime) в прошлом. И в формате у меня есть, а не дата. Время прогрессирует с шагом 5 минут в моем наборе данных.

Я делаю это, но не уверен, куда идти, где:

startTime = datenum('4/2/2004 12:45'); 
endTime = datenum('4/3/2004 18:15'); 

Наконец, я сделать что-то вроде этого, чтобы генерировать имена файлов для некоторой пакетной обработки.

for l = 1:timeSteps 
     precipFileNames{l} = strcat(fileparts(refFile), filesep,'RATE.',datestr(startTime, 'yyyymmdd.hhMMss'), '.tif'); 
     startTime = addtodate(startTime, 5, 'minute');  
end 

ответ

0

Вы были близки. Вы можете использовать как минимум два разных подхода: datetime или datenum. Использование datenum:

startTime = datenum('4/2/2004 12:45'); 
endTime = datenum('4/3/2004 18:15'); 
anotherTime = now; 
inPast = anotherTime + (startTime - endTime) * 1.5; 
datestr(inPast, 'yyyymmdd.hhMMss'); 

Или, используя datetime:

startTime = datetime('4/2/2004 12:45', 'Format', 'MM/dd/uuuu HH:mm') 
endTime = datetime('4/3/2004 18:15', 'Format', 'MM/dd/uuuu HH:mm') 
anotherTime = datetime; 
inPast = anotherTime + (startTime - endTime) * 1.5; 
datestr(inPast, 'yyyymmdd.hhMMss'); 
startTime = startTime + minutes(5); 
+0

Спасибо. В первом варианте я получаю эту ошибку: Undefined function 'datetime' для входных аргументов типа 'char'. – maximusdooku

+0

во втором варианте, что такое дата? ::::: anotherTime = datenum (datetime) – maximusdooku

+0

@maximusdooku 'datetime' был добавлен только в 2014b, поэтому у вас может не быть этого. Re 'datenum (datetime)' Я заменил его эквивалентом 'now'. С вашего вопроса неясно, с какого момента вы хотите вернуться, поэтому я занял текущее время. Но вы можете использовать любое время, проанализированное с помощью 'datenum' – zeeMonkeez

Смежные вопросы