Rev 147 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// +------------------------------------------------------------------------------------------------------+// | PHP version 5.1.1 |// +------------------------------------------------------------------------------------------------------+// | Copyright (C) 2006 Tela Botanica (accueil@tela-botanica.org) |// +------------------------------------------------------------------------------------------------------+// | This file is part of eFlore. |// | |// | Foobar is free software; you can redistribute it and/or modify |// | it under the terms of the GNU General Public License as published by |// | the Free Software Foundation; either version 2 of the License, or |// | (at your option) any later version. |// | |// | Foobar is distributed in the hope that it will be useful, |// | but WITHOUT ANY WARRANTY; without even the implied warranty of |// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |// | GNU General Public License for more details. |// | |// | You should have received a copy of the GNU General Public License |// | along with Foobar; if not, write to the Free Software |// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |// +------------------------------------------------------------------------------------------------------+// CVS : $Id$/*** Classe Calendrier** Description**@package Calendrier//Auteur original :*@version 1*@author Dorian BANNIER <dbannier@aol.com>//Autres auteurs :*@version 3*@author Shaheen ABDOOL RAHEEM <shaheenar50@hotmail.com>*@version 4*@author Jean-Pascal MILCENT <jpm@clapas.org>*@author aucun*@copyright Tela-Botanica 2000-2006*@version $Revision$ $Date$// +------------------------------------------------------------------------------------------------------+*//*** Classe calendrier pour gerer le calendrier pour un mois et une annee**@param annee*@param mois*@param premier jour du mois*@param semaine*@param l'url du resultat affiche*@param liste de noms des jours*@param liste de noms des mois*@param liste des jours feries du mois*/class Calendrier{private $annee;private $mois;private $semaine;private $jour;private $nom_jours = array();private $nom_mois = array();private $liste_feries = array();/***constructeur de la classe calendrier*toutes les variables sont initialises avec les donnees*de la date du jour si on ne passe aucune date en parametre*sinon on initialise le calendrier avec*@param semaine*@param annee*/public function __construct($jour = null, $semaine = null, $mois = null, $annee = null){if (is_null($jour)) {$jour = date('d', time());}$this->jour = $jour;if (is_null($semaine)) {$semaine = date('W', time());}$this->semaine = $semaine;if (is_null($mois)) {$mois = date('m', time());}$this->mois = $mois;if (is_null($annee)) {// TODO : vérifier le standard ISO-8601$annee = date('Y', time());}$this->annee = $annee;$this->nom_jours = array (1 => GESTION_LUN_A, GESTION_MAR_A, GESTION_MER_A, GESTION_JEU_A, GESTION_VEN_A, GESTION_SAM_A ,GESTION_DIM_A);$this->nom_jours_long = array (1 => GESTION_LUN_L, GESTION_MAR_L, GESTION_MER_L, GESTION_JEU_L, GESTION_VEN_L, GESTION_SAM_L ,GESTION_DIM_L);$this->nom_mois = array(1 => "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");$this->liste_feries = $this->calculerJoursFeries($this->annee);}public function getAnnee(){return $this->annee;}public function getMois(){return $this->mois;}public function getSemaine(){return $this->semaine;}public function getJour(){return $this->jour;}public function getNomJours($j = null){if (is_null($j)) {return $this->nom_jours;}return $this->nom_jours[$j];}public function getNomJoursLong($j = null){if (is_null($j)) {return $this->nom_jours_long;}return $this->nom_jours_long[$j];}public function getNomMois($m = null){if (is_null($m)) {return $this->nom_mois;}return $this->nom_mois[$m];}public function getListeFeries(){return $this->liste_feries;}/***Calcule les dates des jours fériés pour la france.*Renvoie un tableau contenant la liste de dates par mois.*Les dates sont de la forme timestamp unix.**@param integer l'année pour laquelle on veut les jours fériés.*@return array tableau des dates fériées.*/public function calculerJoursFeries($annee){$tab = array( mktime(0,0,0,1,1,$annee),$this->donnerDatePaques($annee),mktime(0,0,0,5,1,$annee),mktime(0,0,0,5,8,$annee),$this->donnerDateAscension($annee),// TODO : gérer les jours fériès depuis l'interface d'admin...// N'est plus un jour férié...//$this->donnerDatePentecote($annee),mktime(0,0,0,7,14,$annee),mktime(0,0,0,8,15,$annee),mktime(0,0,0,11,1,$annee),mktime(0,0,0,11,11,$annee),mktime(0,0,0,12,25,$annee));return $tab;}/***Calcule la date du lundi de Pâques.**@param integer l'année pour laquelle on veut connaître la date de Pâques*@return integer le timestamp du lundi de Pâques*/public function donnerDatePaques($annee){$date_paques = easter_date($annee);$lundi_paques = mktime( date("H", $date_paques),date("i", $date_paques),date("s", $date_paques),date("m", $date_paques),date("d", $date_paques) + 1,date("Y", $date_paques));return $lundi_paques;}/***Calcule la date de l'ascension.**@param integer l'année pour laquelle on veut connaître la date de l'ascencion*@return integer le timestamp de l'ascencion*/public function donnerDateAscension($annee){$date_paques = easter_date($annee);$date_ascension = mktime( date("H", $date_paques),date("i", $date_paques),date("s", $date_paques),date("m", $date_paques),date("d", $date_paques) + 39,date("Y", $date_paques));return $date_ascension;}/***Calcule la date du lundi de la pentecote*Renvoie un timestamp*renvoie cette derniere*/public function donnerDatePentecote($annee){$date_paques = easter_date($annee);$date_ascension = $this->donnerDateAscension($annee);$date_pentecote = mktime( date("H", $date_ascension),date("i", $date_ascension),date("s", $date_ascension),date("m", $date_ascension),date("d", $date_ascension) + 11,date("Y", $date_ascension));return $date_pentecote;}/***Indique si une date est fériée ou non**@param integer le timestamp de la date à vérifier*@return boolean true si vrai, false si le jour n'est pas férié.*/function etreFerie($date){if (in_array($date, $this->liste_feries)) {return true;} else {return false;}}}?>