Функции времени и даты
Таблица 8.5. Форматы представления даты.
Dateform(номер) | Dateform (строка) | Пример |
---|---|---|
0 | 'dd-mmM-yyyy HH:MM:SS' | 11-Mar-1995 03:45 |
1 | 'dd-mmM-yyyy' | 01-Mar-1995 |
2 | 'mm/dd/yy' | 03/01/95 |
3 | ' mmm ' | Mar |
4 | 'm' | M |
5 | 'mm' | 3 |
6 | 'mm/dd' | 03/01 |
7 | 'dd' | 1 |
8 | 'ddd' | Wed |
9 | 'd' | W |
10 | 'УУУУ' | 1995 |
11 | 'УУ | 95 |
12 | ' mmmyy ' | Mar95 |
13 | 'HH:MM:SS' | 15:45:17 |
- datevec(A) – преобразует входные величины в массив размерности пхб, каждая строка которого представляет собой вектор [Y,M.D,H,MI,S]. Первые пять элементов вектора – целые числа. Массив А может состоять или из строк, удовлетворяющих формату функции datestr, или из скалярных величин, созданных функциями datenum и now;
- [Y, M., D, H. MI, S] = datevec (A) – возвращает компоненты вектора даты как индивидуальные переменные.
Любой компонент входного вектора, который не вписывается в нормальный диапазон дат, преобразуется в следующий диапазон (так, например, несуществующая дата June 31 преобразуется в July 1). Допускаются значения нулевого месяца и нулевого дня. Например:
>
>
n
=
datevec(
'11/31/98'
)
n
=
1998
12
1
0
0
0
>
>
n
=
datevec(
710223
)
n
=
1944
7
10
0
0
- eomday (Y, М) – возвращает последний день года и месяца, заданных соответственно элементами массивов Y и М. Пример (нахождение високосных лет двадцатого столетия):
>
>
y
=
1900
:
1999
;
>
>
E
=
eomday(y.
2
);
>
>
y(find(E
=
=
29
))
ans
=
Columns
1
through
6
1904
1908
1912
1916
1920
1924
Columns
7
through
12
1928
1932
1936
1940
1944
1948
Columns
13
through
18
1952
1956
1960
1964
1968
1972
Columns
19
through
24
1976
1980
1984
1988
1992
1996
- etime(t2,t1) – возвращает длительность промежутка времени (в секундах), задаваемого векторами t1 и t2. Векторы должны удовлетворять формату, выдаваемому функцией clock:
T
=
[год месяц день час минуты секунды]
Функция работает некорректно, если в текущий промежуток времени попадут границы месяца или года, что, однако, случается крайне редко и исправляется при повторе операции. Пример (вычисляется время, затрачиваемое на быстрое преобразование Фурье с 2048 точками):
>
>
x
=
rand(
2048
,
1
);t
=
clock; fft(x); etime(clock.t);etime (clock.t)
ans
=
0.0500
- now – возвращает текущие время и дату в форме числа. Использование rem(now.l) возвращает только время, a floor(now) – только дату. Пример:
>
>
t1
=
now, t2
=
rem(now,
1
)
t1
=
7.3009e
+
005
t2
=
0.6455
- tic – запускает таймер;
- toc – выводит время, прошедшее с момента запуска таймера;
- t = toe – возвращает прошедшее время в переменной t. Пример:
>
>
tic.surf(peaks(
50
));toc
elapsed_time
=
0.7600
- [N,S] = weekday(D) – возвращает день недели в виде числа N и в виде строки S для каждой даты массива D. Пример:
>
>
D
=
[
728647.735730
]:[N.S]
=
weekday(D)
N
=
2
1
S
=
Mon Sun