2015-06-18 3 views
1

меня Дата & время в интервалах один час (3600 секунд) в числовом формате, например, 0,3600, 7200, 10800, 14400, 18000 и т.д. Я Дата начала работы и время, например 0 соответствует 2005/06/01 01:00 в формате «yyyy/mm/dd HH: MM».Дата преобразования времени: в Дата Время

Я пишу эти данные в файл Excel, поэтому я ищу способ, которым я могу преобразовать время, указанное в Час (в секундах), в Дата Время (2005/06/01 01:00, 2005/06/01 02:00 и т. Д.) перед тем, как писать в файл excel.

Я изучил функции «datenum» и «datestr», но они не полезны, поскольку я не могу дать им настроенное время начала i.e (0 соответствует 2005/06/01 01:00). Может быть, если кто-то может помочь мне указать мне в правильном направлении.

tempMatrix = [NrID time_inSec ff X Y]; 
tempMatrix_dataCell=num2cell(tempMatrix); 
col_header={'NrID','Time','ff','X','Y'}; 
data_for_xls_file=[col_header; tempMatrix_dataCell]; 
xlswrite('My_file.xls',data_for_xls_file); 

time_inSec - это столбец со значениями 0, 3600, 7200, 10800 и т.д., которые необходимо преобразовать.

Когда я использую datenum возвращает 7.3246e + 05 так, когда я добавляю 3600, чтобы получить 2005/06/01 02:00 и передать его в СТРОКА-ДАТЫ возвращается 2015/04/10 1:00.

temp_time = datenum('2005/06/01 01:00','yyyy/mm/dd HH:MM') 
+1

Названные функции '' datenum' и datestr' полезны, и вы можете использовать их, чтобы делать то, что вы хотите. Пожалуйста, предоставьте код (минимально необходимый), чтобы воспроизвести вашу проблему. – thewaywewalk

+2

'datenum' делает число, которое находится в единицах дней. Просто конвертируйте свои «часы» со своих единиц секунд в несколько дней и добавьте их к датам даты. Затем конвертируйте их в номера дат Excel, используя ['m2xdate'] (http://www.mathworks.com/help/finance/m2xdate.html) – Dan

+0

@ Dan Спасибо, я работал в подразделениях diff – Basit

ответ

0

Это работает с заданным временем начала:

startTime = datenum('2005/06/01 01:00', 'yyyy/mm/dd HH:MM'); % Define start time. 
currentTime = datenum('2005/06/01 02:00', 'yyyy/mm/dd HH:MM'); % Current time. 
timePassedHours = (currentTime - startTime) * 24; % Time that has passed in hours. 
display(timePassedHours); % Print the output. 
Смежные вопросы