Функции времени и даты
Ряд функций служит для возврата текущего времени и даты. Они перечислены ниже.
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