Типы даты и времени в MATLAB

Работа с датой и временем

Объект дата и время

Для создания объекта типа дата используется функция datetime

>> a = datetime(2014,6,28,6,0,0)

a = 
  datetime
   28-Jun-2014 06:00:00

Функция позволяет создавать диапазон дат, если указан диапазон изменения одного из аргументов

>> a = datetime(2014,6,28:30,6,0,0)

a = 
  1×3 datetime array
   28-Jun-2014 06:00:00   29-Jun-2014 06:00:00   30-Jun-2014 06:00:00
>> a(1)   

ans = 
  datetime
   28-Jun-2014 06:00:00

Для создания может быть использован оператор :

date_array = datetime(2020,4,1,0,0,0):minutes(20):datetime(2020,4,2,0,0,0)

date_array = 
  1×10 datetime array
Columns 1 through 5
   01-Apr-2020 00:00:00   01-Apr-2020 02:40:00   01-Apr-2020 05:20:00   01-Apr-2020 08:00:00   01-Apr-2020 10:40:00
Columns 6 through 10
   01-Apr-2020 13:20:00   01-Apr-2020 16:00:00   01-Apr-2020 18:40:00   01-Apr-2020 21:20:00   02-Apr-2020 00:00:00

или функция linspace

date_array = linspace(datetime(2020,4,1,0,0,0),datetime(2020,4,2,0,0,0),10)

Формат отображения даты задается свойством datetime.Format

>> a.Format = 'dd.MM.yyyy';
>> a

a = 
  1×3 datetime array
   28.06.2014   29.06.2014   30.06.2014

Интервал между двумя датами

>> d = a(2) - a(1)

d = 
  duration
   24:00:00

По умолчанию разница дат отображается в часах. Чтобы изменить формат отображения используется свойство Format

>> d.Format = 'h'

d = 
  duration
   24 hr

>> d.Format = 'd'

d = 
  duration
   1 day

Для создания интервалов дат могут использоваться функции calmonth, caldays, calweeks, calquarters, calyears

На 10 дней вперед от 20 февраля 2020 года

>> d1 = datetime(2020,2,20,0,0,0);
>> d2 = d1 + caldays(10)

d2 = 
  datetime
   01-Mar-2020 00:00:00

На 1 месяц вперед от 20 февраля 2020 года

>> d2 = d1 + calmonths(1)

d2 = 
  datetime
   20-Mar-2020 00:00:00

На 1 квартал вперед от 20 февраля 2020 года

>> d2 = d1 + calquarters(1)

d2 = 
  datetime
   20-May-2020 00:00:00