Функции времени и даты
Ряд функций
служит для возврата текущего времени и даты. Они перечислены ниже.
-
calendar(d)
— возвращает календарь на месяц, в который попадает день, заданный аргументом
d (дни отсчитываются от начала летоисчисления);
-
calendar
— возвращает матрицу размером 6x7, содержащую календарь на текущий месяц.
Календарь начинается с воскресения (первый столбец) и завершается субботой;
-
calendar(y
,m) — возвращает календарь на месяц, заданный аргументом т, и год, заданный
аргументом у;
Вызов функции
без присваивания результата выдает календарь на экран. Примеры:
»
calendar
Jul
2000
S
|
М
|
Tu
|
W
|
Th
|
F
|
S
|
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
|
30
|
31
|
0
|
0
|
0
|
0
|
0
|
|
|
calendar(700477)
Nov
1917
|
|
S
|
M
|
Tu
|
W
|
Th
|
F
|
S
|
|
|
0
|
0
|
0
|
0
|
1
|
2
|
3
|
|
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
|
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
|
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
|
|
25
|
26
|
27
|
28
|
29
|
30
|
0
|
|
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|
-
clock — возвращает вектор из 6 элементов, содержащий текущую дату и время
в десятичной форме [год месяц день час минуты секунды]. Первые пять элементов
этого вектора — целые числа. Шестой элемент имеет несколько десятичных знаков
после запятой. Функция fix(clock) округляет число секунд до целого значения.
Пример:
»
c=clock
с =
1.0e+003
*
2.0000
0.0070 0.0240 0.0200
0.0120 0.0148
»
fix(clock)
ans =
2000
7 24 20
12 26
-
cputime
— возвращает время работы процессора (в секундах) , использованное системой
MATLAB с момента ее запуска. Это число может выйти за рамки внутреннего
представления, и тогда отсчет времени начинается заново. Пример:
»
+tl=cputime; w=surf(peaks(30));cputime-tl
ans =
0.2200
-
str =
date — возвращает строку, содержащую дату в формате дд-ммм-гггг (день-месяц-год).
Пример:
»
d = date
d =
24-Jul-2000
-
datenum
— преобразует строку даты в порядковый номер даты, который отсчитывается
с некоторого начального дня (01.01.00);
-
datenum(str)
— преобразует дату, заданную строкой str, в порядковый номер даты. Строка
string должна иметь один из следующих форматов: 0, 1, 2, 6, 13, 14, 15 или
16, определенных для функции datestr;
-
datenum(Y.M.D)
— возвращает порядковый номер даты для соответствующих массивов элементов
Y, М и D (год, месяц, день). Массивы Y, М и D должны иметь одинаковую размерность
(при этом любые из них могут быть скалярами);
-
datenum(Y.M.D,H.MI,S)
— возвращает порядковый номер даты для соответствующих массивов элементов
Y, М, D, H, Ml и S (год, месяц, день, часы, минуты, секунды). Массивы Y,
М, D, H, Ml и S должны иметь одинаковую размерность (при этом любые из них
могут быть скалярами).
Пример:
»
n1 = datenum('26-Nov-1998')
n1
=
730085
»
Y=[1998,2000];M-[1,12];D=23;N=datenum(Y,M,D)
N
=
729778
730843
-
datestr(D,
dateform) — преобразует каждый элемент массива порядковых номеров даты D
в строку. Аргумент dateform определяет формат результата; dateform может
быть номером или строкой в соответствии с табл. 8.5.
Таблица
8.5.
Форматы представления даты
Dateform(номер)
|
Dateform (строка)
|
Пример
|
0
|
'dd-rmiM-yyyy
HH:MM:SS'
|
1l-Mar-1995
03:45
|
1
|
'dd-mmM-yyyy'
|
Ol-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 = datevecC 11/31/98')
n=
1998
12 1 0
0 0
»
n = datevec(710223)
n
=
1944
7 10 0
0
О eomday (Y,
М) — возвращает последний день года и месяца, заданных соответственно элементами
массивов Y и М. Пример (нахождение високосных лет двадцатого столетия):
»
у =
1900:1999;
» Е = 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,tl)
— возвращает длительность промежутка времени (в секундах), задаваемого векторами
t1 и t2. Векторы должны удовлетворять формату, выдаваемому функцией clock:
Т = [год месяц
день час минуты секунды].
Функция работает
некорректно, если в текущий промежуток времени попадут границы месяца или года,
что, однако, случается крайне редко и исправляется при повторе операции. Пример
(вычисляется время, затрачиваемое на быстрое преобразование Фурье с 2048 точками):
»
х = rand(2048,l);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
Содержание раздела