|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Ivan Frolkov 2:5020/175.2 16 Nov 2004 18:47:10 To : Mikhail Polykovsky Subject : Календарь --------------------------------------------------------------------------------
Tue Nov 16 2004 16:30, Mikhail Polykovsky wrote to All:
MP> Здравствуйте.
MP> Скажите, у какого модуля проще всего спросить список дат указанного
MP> месяца с указанием дня недели каждого дня? Цель: нарисовать календарь.
MP> Модули, рисующие сами, не подходят.
Есть то ли Simple::Calendar, то ли Calendar::Simple, который ничего не рисует.
Если же тебе захотелось врукопашную... ну что же, давай я тебе покажу, как это
делают настоящие мачо:
Hа самом деле все просто как мычание - из даты делаем время с помощью
Time::Local, а из времени делаем день недели с помощью localtime. Если
использование localtime считается неспортивным, то вспоминаем, что
1. "Солдаты... э-э... имейте в виду... э-э... что сегодня... среда, потому
что... завтра будет четверг... э-э..."
и
2. Only XT users know that January 1, 1980 was a Tuesday"
и высчитываем число дней между какой-то датой с начала времен с известным днем
недели и нужной, берем остаток от деления вычисленного числа дней на 7 и
немножко занимаемся арифметикой.
Hа самом деле тебе надо только день недели для первого числа: сделай массив
для кадого дня месяца и вставь в его начало столько undef'ов, сколько дней
перед тем днем недели, который является первый день месяца. Hашинковать его по
7 кусочков, надеюсь, трудностей не составит :-)
--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/33006684bb8e.html, оценка из 5, голосов 10
|