Модераторы: ginnie, korob2001
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Код для вызова ближайших выходных дней 
:(
    Опции темы
Simon
Дата 1.11.2004, 15:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Доброго дня всем.
Имеется скрипт простого календарика с днями месяца и ссылками с них на соответствующий репертуар. Подскажите пожалуйста, как примерно можно описАть функцию, чтобы она вызывала данные на ближайшие выходные? То есть чтобы в любой день, когда не ткни, она вызывала ближайшие субботу и воскресенье. От чего надо оттолкнуться, каков ее алгоритм? Никак не могу сообразить.

Заранее спасибо за ответы/советы.
  Вверх
Forza
Дата 1.11.2004, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 12.9.2004

Репутация: нет
Всего: 2



Почитай вот тут про функцию localtime(). Она для текущего времени возвращает массив, в котором присутствует № дня недели.
PM MAIL   Вверх
korob2001
Дата 2.11.2004, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 6
Всего: 61



Попробуй этот код:
Код

#!/usr/bin/perl -w
use strict;
my $day_of_week = ( localtime )[6];
my ($time, $time2, $day);
$time = $time2 = time;
my $temp = $day_of_week;
while ( 1 ) {
  unless ( $temp == 6 ) {
      $temp++;
      $time += (60 * 60) * 24;
      next;
  }

  $time2 = ($time + (60 * 60) * 24)
        if ( $temp == 6 and $day_of_week != 0);
  last;
}

print "Суббота: " . scalar( localtime( $time ) ), "\n";
print "Воскресение: " . scalar( localtime( $time2 ) ), "\n";

Может он и не идеален, так как ниписал его без стронних модулей и в течении 5 минут. Но поправить его под свои нужды думаю больших усилий не потребуется.

Если хочешь заюзать модули, то читай доки:
perldoc Date::Calc
perldoc Date::Manip
Если они не установлены, то придётся установить ;).

Удачи.

Это сообщение отредактировал(а) korob2001 - 2.11.2004, 16:43


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Simon
Дата 2.11.2004, 16:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо, korob2001, все получилось :-)
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.3709 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.