Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Календарь с праздничными данными и переносами праздников
 
 автор: Vincento   (10.03.2011 в 22:43)   письмо автору
 
 

Добрый день!

есть ли скрипт календаря рабочих дней? ну или виджет который на подобе Гисметео будет отображать календарь по ссылке? Благодарю заранее за ответ!

  Ответить  
 
 автор: cheops   (11.03.2011 в 00:09)   письмо автору
 
   для: Vincento   (10.03.2011 в 22:43)
 

Хм... скрипт по ссылке по подойдет?

http://softtime.ru/scripts/calendar.php

  Ответить  
 
 автор: Vincento   (11.03.2011 в 07:25)   письмо автору
 
   для: cheops   (11.03.2011 в 00:09)
 

нет.

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

  Ответить  
 
 автор: AlexSol   (11.03.2011 в 08:40)   письмо автору
 
   для: Vincento   (11.03.2011 в 07:25)
 

календарь в гуглдокс

  Ответить  
 
 автор: cheops   (11.03.2011 в 11:34)   письмо автору
 
   для: Vincento   (11.03.2011 в 07:25)
 

Хм... так переносы каждый год правительством утверждаются по-разному, заранее такой календарь на несколько лет вперед не составишь, нужно массив вводить, который администратору придется пополнять каждый год. Или нужно сервис искать, где это сделает чужой администратор и который такие данные в приемлемом формате предоставит, что их не сложно будет загрузить.

  Ответить  
 
 автор: Vincento   (11.03.2011 в 19:01)   письмо автору
 
   для: cheops   (11.03.2011 в 11:34)
 

Да я вот такой именно и хочу найти, чтобы на оф сайте это делали и давали возможность в каком-нить формате брать эти данные. хотя вручную на год тоже думаю минут за 15 можно сделать!

  Ответить  
 
 автор: cheops   (11.03.2011 в 19:32)   письмо автору
 
   для: Vincento   (11.03.2011 в 19:01)
 

Ну на 2011 год держите, а как будет в 2012 году я пока не знаю, собственно дело не хитрое, можно и самостоятельно скрипт поправить или попытаться угадать переносы на следующий год, у них достаточно четкие правила, особено, когда нет заморочек с переносом майских праздников на январские.
<?php
  // Вычисляем число дней в текущем месяце
  $dayofmonth = date('t');
  // Счётчик для дней месяца
  $day_count = 1;

  // 1. Первая неделя
  $num = 0;
  for($i = 0; $i < 7; $i++)
  {
    // Вычисляем номер дня недели для числа
    $dayofweek = date('w',
                      mktime(0, 0, 0, date('m'), $day_count, date('Y')));
    // Приводим к числа к формату 1 - понедельник, ..., 6 - суббота
    $dayofweek = $dayofweek - 1;
    if($dayofweek == -1) $dayofweek = 6;

    if($dayofweek == $i)
    {
      // Если дни недели совпадают,
      // заполняем массив $week
      // числами месяца
      $week[$num][$i] = $day_count;
      $day_count++;
    }
    else
    {
      $week[$num][$i] = "";
    }
  }

  // 2. Последующие недели месяца
  while(true)
  {
    $num++;
    for($i = 0; $i < 7; $i++)
    {
      $week[$num][$i] = $day_count;
      $day_count++;
      // Если достигли конца месяца - выходим
      // из цикла
      if($day_count > $dayofmonth) break;
    }
    // Если достигли конца месяца - выходим
    // из цикла
    if($day_count > $dayofmonth) break;
  }
  // Исключения на 2011 год - праздники и переносы
  // Январь
  $date[1][1] = 1;
  $date[1][2] = 1;
  $date[1][3] = 1;
  $date[1][4] = 1;
  $date[1][5] = 1;
  $date[1][6] = 1;
  $date[1][7] = 1;
  $date[1][10] = 1;
  // Февраль
  $date[2][23] = 1;
  // Март
  $date[3][8] = 1;
  // Май
  $date[5][2] = 1;
  $date[5][9] = 1;
  // Июнь
  $date[6][13] = 1;
  // Ноябрь
  $date[11][4] = 1;


  // 3. Выводим содержимое массива $week
  // в виде календаря
  // Выводим таблицу
  echo "<table border=1>";
  for($j = 0; $j < 7; $j++)
  {
    echo "<tr>";
    for($i = 0; $i < count($week); $i++)
    {
      if(!empty($week[$i][$j]))
      {
        // Если имеем дело с субботой и воскресенья
        // подсвечиваем их
        if($j == 5 || $j == 6 || ($date[date('n')][$week[$i][$j]])) 
             echo "<td><font color=red>".$week[$i][$j]."</font></td>";
        else echo "<td>".$week[$i][$j]."</td>";
      }
      else echo "<td>&nbsp;</td>";
    }
    echo "</tr>";
  } 
  echo "</table>";
?>

  Ответить  
 
 автор: IAG   (15.10.2011 в 21:16)
 
   для: cheops   (11.03.2011 в 19:32)
 

помогите плиз, где нужно добавить "+3" что бы текущая дата сдвигалась на три дня вперед и в календаре выводилось не сегодняшнее число а на три дня вперед???
заранее благодарю.
Алексей.

  Ответить