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


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


#  Массив

print 'Today is day ', (localtime()[7],  of the current year \n , Today is day 117 of the current year.

# Объекты Time tm
$tm = localtime,

print Today is day ', $tm->yday,  of the current year \n , Today is day 117 of the current year.\

Чтобы преобразовать список в количество секунд с начала эпохи, восполь­зуйтесь стандартным модулем Time::Local. В нем имеются функции timelocal и timegm, которые получают список из девяти элементов и возвращают целое число. Элементы списка и интервалы допустимых значений совпадают с теми, которые возвращаются функциями localtime и gettime.

Количество секунд с начала эпохи ограничивается размером целого числа. Без­знаковое 32-разрядное целое позволяет представить время по Гринвичу от 20:45:52 13 декабря 1901 года до 03:14:07 19 января 2038 года включительно. Предполагает­ся, что к 2038 году в компьютерах должны использоваться целые числа большей разрядности. Во всяком случае, будем надеяться на это. Чтобы работать с време­нем за пределами этого интервала, вам придется воспользоваться другим представ­лением или выполнять операции со отдельными значениями года, месяца и числа.

Модули Date::Calc и Date::Manip с CPAN работают с этими отдельными значе­ниями, но учтите — они не всегда вычитают из года 1900, как это делает localtime, а нумерация месяцев и недель в них не всегда начинается с 0. Как всегда, в страни­цах руководства можно найти достоверные сведения о том, какая информация пе­редается модулю, а какая — возвращается им. Только представьте, как будет неприят­но, если рассчитанные вами финансовые показатели уйдут на 1900 лет в прошлое!

3.1. Определение текущей даты

Проблема

Требуется определить год, месяц и число для текущей даты.

Решение

Воспользуйтесь функцией localtime. Без аргументов она возвращает текущую дату и время. Вы можете вызвать localtime и извлечь необходимую информацию из полученного списка:

($DAY,   $MONTH,   $YEAR) = (localtime)[3,4,5],


3.1. Определение текущей даты    97




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