Матричная лаборатория MatLab

         

Функции времени и даты

Ряд функций служит для возврата текущего времени и даты. Они перечислены ниже.

  • 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

 

Содержание раздела