PERL: БИБЛИОТЕКА ПРОГРАММИСТА


PERL: БИБЛИОТЕКА ПРОГРАММИСТА - стр. 97


Говоря о времени и датах, мы часто путаем две разные концепции: момент вре­мени (дата, время) и интервал между двумя моментами (недели, дни, месяцы и т. д.). При отсчете секунд с начала эпохи интервалы и моменты представляются в оди­наковых единицах, поэтому с ними можно выполнять простейшие математичес­кие операции.

Однако люди не привыкли измерять время в секундах с начала эпохи. Мы пред­почитаем работать с конкретным годом, месяцем, днем, часом, минутой и секун­дой. Более того, название месяца может быть как полным, так и сокращенным. Число может указываться как перед месяцем, так и после него. Использование разных форматов затрудняет вычисления, поэтому введенная пользователем или

В наши дни время по Гринвичу также часто обозначается сокращением UTC (Universal Coordinated Time)


Введение   95

прочитанная из списка строка даты/времени обычно преобразуется в количество секунд с начала эпохи, с ней производятся необходимые операции, после чего се­кунды снова преобразуются для вывода.

Для удобства вычислений количество секунд с начала эпохи всегда измеряется по Гринвичу. В любых преобразованиях всегда необходимо учитывать, представле­но ли время по Гринвичу или в местном часовом поясе. Различные функции пре­образования позволяют перейти от гринвичского времени в местное, и наоборот.

Функция Perl time возвращает количество секунд, прошедших с начала эпохи... более или менее' точно. Для преобразования секунд с начала эпохи в конкретные дни, месяцы, годы, часы, минуты и секунды используются функции localtime и gmtime. В списковом контексте эти функции возвращают список, состоящий из девяти элементов.

Переменная                Значение                                Интервал

$sec

Секунды

0-60

$Ш1П

Минуты

0-59

$hours

Часы

0-23

$mday

День месяца

1-31

$month

Месяц

0-11, 0== январь

$year

Год, начиная с 1900

1-138 (и более)

$wday

День недели

0-6,0 == воскресенье

$yday

День года

1-366

$isdst

Оили 1

true, если действует летнее время




Начало  Назад  Вперед