begin process at 2012 02 15 02:27:01
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > CALENDRIER MENSUEL

CALENDRIER MENSUEL


 Information sur la source

Note :
7 / 10 - par 8 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Niveau :Débutant Date de création :12/10/2003 Vu / téléchargé :20 308 / 1 922

Auteur : lumesh

Ecrire un message privé
Site perso
Commentaire sur cette source (21)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce petit bout de code est un calendrier assez simple mais super pratique.
Il ne gere pas les evenements mais comme vous le verez c'est tres tres simple a mettre en place.

Cela se compose en 2 parties.
La premiere pour le calendrier meme et les calculs et la 2eme pour l'affichage de ce calendrier.

ATTENTION: le fichier calendrier.php devra etre mis dans le meme repertoire que votre page PHP.

pour afficher un mois et une annee specifiche ou meme changer le jour actuel du mois, vous devez ajouter dans lurl de votre page (pas celle du calendrier) ceci:
http://www.domaine.com/votre_page.php?j=06&m =10

Source

  • /*
  • PREMIERE PARTIE A METTRE DANS LE FICHIER [b]CALENDRIER.PHP[/b]
  • */
  • <?
  • $mois = array();
  • // nombre de jour dans chaque mois
  • $nbjour = array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
  • // nom des mois en francais
  • $mois[1] = "Janvier";
  • $mois[2] = "Février";
  • $mois[3] = "Mars";
  • $mois[4] = "Avril";
  • $mois[5] = "Mai";
  • $mois[6] = "Juin";
  • $mois[7] = "Juillet";
  • $mois[8] = "Août";
  • $mois[9] = "Septembre";
  • $mois[10] = "Octobre";
  • $mois[11] = "Novembre";
  • $mois[12] = "Décembre";
  • $jours = array();
  • // si un jour, mois, annee, n'est pas spécifié alors on recupere la date actuelle
  • if ($j == "") { $j = date("d"); }
  • if ($m == "") { $m = date("m"); }
  • if ($a == "") { $a = date("Y"); }
  • // on determine a quel jour de la semaine correspond le premier jour du mois affiché
  • $premierjour = jddayofweek(cal_to_jd($CAL_FRENCH, $m, 1, $a), 0);
  • // si on est dans une annee bisextile alors on ajoute un jour au mois de fevrier sinon un recupere le nombre de jour dans le mois
  • if ($m == 2) {
  • if ((($a % 4 == 0) && ($a % 100 != 0)) || ($a % 400 == 0)) {
  • $dernierjour = 29;
  • } else {
  • $dernierjour = 28;
  • }
  • } else {
  • $dernierjour = $nbjour[$m];
  • }
  • if ($premierjour == 0) { $premierjour = 7; }
  • // on commence la boucke pour stoker les informations relatives a chaques jour de la semaine
  • $compteur = 0;
  • for ($ligne=1;$ligne<7;$ligne++) {
  • for ($colone=1;$colone<8;$colone++) {
  • if ($ligne == 1) {
  • // si le jour de la semaine est plus petit que le jour de la semaine correspondant au premier jour du mois
  • // alors on affiche rien
  • // sinon on stocke le jour dans le tableau
  • if ($colone < $premierjour) {
  • $jours[$ligne][$colone] = "";
  • } else {
  • $compteur++;
  • $jours[$ligne][$colone] = $compteur;
  • }
  • } else {
  • $compteur++;
  • // si le jour atteint est plus petit ke le nombre de jour dans le mois
  • // alors on le stocke
  • // sinon on affiche rien
  • if ($compteur <= $dernierjour) {
  • $jours[$ligne][$colone] = $compteur;
  • } else {
  • $jours[$ligne][$colone] = "";
  • }
  • }
  • }
  • }
  • // on calcule le mois et lannee, precedent et suivant
  • $mois_precedent = $m - 1;
  • $mois_suivant = $m + 1;
  • $annee_precedente = $a;
  • $annee_suivante = $a;
  • if ($mois_precedent < 1) {
  • $mois_precedent = 12;
  • $annee_precedente--;
  • }
  • if ($mois_suivant > 12) {
  • $mois_suivant = 1;
  • $annee_suivante++;
  • }
  • ?>
  • //-------------------------------------------------------------------------------------------
  • /*
  • DEUXIEME PARTIE A INTEGRER [b]DANS VOTRE PAGE PHP[/b]
  • */
  • <?
  • include("calendrier.php");
  • echo "<table width='150' cellspacing='0' cellpadding='0' border='0'>";
  • echo "<tr><td align='center'><b>Lu</b></td><td align='center'><b>Ma</b></td><td align='center'><b>Me</b></td><td align='center'><b>Je</b></td><td align='center'><b>Ve</b></td><td align='center'><b>Sa</b></td><td align='center'><b>Di</b></td></tr>";
  • for ($ligne=1;$ligne<7;$ligne++) {
  • echo "<tr>";
  • for ($colone=1;$colone<8;$colone++) {
  • echo "<td align='center'>";
  • if ($jours[$ligne][$colone] == $j) {
  • // affichage du jour memem
  • echo "<b>".$jours[$ligne][$colone]."</b>";
  • } elseif ($jours[$ligne][$colone] == 20) {
  • // affichage si il y a un evenement
  • echo "<a href='#'>".$jours[$ligne][$colone]."</a>";
  • } else {
  • // sinon affichage normal
  • echo $jours[$ligne][$colone];
  • }
  • echo "</td>";
  • }
  • echo "</tr>";
  • }
  • echo "<tr><td align='center'><a href='?m=".$mois_precedent."&a=".$annee_precedente."'><<</a></td><td colspan='5' align='center'>".$mois[$m]." ".$a."</td><td align='center'><a href='?m=".$mois_suivant."&a=".$annee_suivante."'>>></a></td></tr>";
  • echo "</table>";
  • ?>
/*
    PREMIERE PARTIE A METTRE DANS LE FICHIER [b]CALENDRIER.PHP[/b]
*/

<?
 $mois = array();
 // nombre de jour dans chaque mois
 $nbjour = array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
 // nom des mois en francais
 $mois[1] = "Janvier";
 $mois[2] = "Février";
 $mois[3] = "Mars";
 $mois[4] = "Avril";
 $mois[5] = "Mai";
 $mois[6] = "Juin";
 $mois[7] = "Juillet";
 $mois[8] = "Août";
 $mois[9] = "Septembre";
 $mois[10] = "Octobre";
 $mois[11] = "Novembre";
 $mois[12] = "Décembre";
 $jours = array();
 // si un jour, mois, annee, n'est pas spécifié alors on recupere la date actuelle
 if ($j == "") { $j = date("d"); }
 if ($m == "") { $m = date("m"); }
 if ($a == "") { $a = date("Y"); }
 // on determine a quel jour de la semaine correspond le premier jour du mois affiché
 $premierjour = jddayofweek(cal_to_jd($CAL_FRENCH, $m, 1, $a), 0);
 // si on est dans une annee bisextile alors on ajoute un jour au mois de fevrier sinon un recupere le nombre de jour dans le mois
 if ($m == 2) {
    if ((($a % 4 == 0) && ($a % 100 != 0)) || ($a % 400 == 0)) {
       $dernierjour = 29;
    } else {
       $dernierjour = 28;
    }
 } else {
    $dernierjour = $nbjour[$m];
 }
 if ($premierjour == 0) { $premierjour = 7; }
 // on commence la boucke pour stoker les informations relatives a chaques jour de la semaine
 $compteur = 0;
 for ($ligne=1;$ligne<7;$ligne++) {
     for ($colone=1;$colone<8;$colone++) {
         if ($ligne == 1) {
            // si le jour de la semaine est plus petit que le jour de la semaine correspondant au premier jour du mois
            // alors on affiche rien
            // sinon on stocke le jour dans le tableau
            if ($colone < $premierjour) {
               $jours[$ligne][$colone] = "";
            } else {
               $compteur++;
               $jours[$ligne][$colone] = $compteur;
            }
         } else {
            $compteur++;
            // si le jour atteint est plus petit ke le nombre de jour dans le mois
            // alors on le stocke
            // sinon on affiche rien
            if ($compteur <= $dernierjour) {
               $jours[$ligne][$colone] = $compteur;
            } else {
               $jours[$ligne][$colone] = "";
            }
         }
     }
 }
 // on calcule le mois et lannee, precedent et suivant
 $mois_precedent = $m - 1;
 $mois_suivant = $m + 1;
 $annee_precedente = $a;
 $annee_suivante = $a;
 if ($mois_precedent < 1) {
     $mois_precedent = 12;
     $annee_precedente--;
 }
 if ($mois_suivant > 12) {
     $mois_suivant = 1;
     $annee_suivante++;
 }
?>

//-------------------------------------------------------------------------------------------


/*
    DEUXIEME PARTIE A INTEGRER [b]DANS VOTRE PAGE PHP[/b]
*/

<?
 include("calendrier.php");
 echo "<table width='150' cellspacing='0' cellpadding='0' border='0'>";
 echo "<tr><td align='center'><b>Lu</b></td><td align='center'><b>Ma</b></td><td align='center'><b>Me</b></td><td align='center'><b>Je</b></td><td align='center'><b>Ve</b></td><td align='center'><b>Sa</b></td><td align='center'><b>Di</b></td></tr>";
 for ($ligne=1;$ligne<7;$ligne++) {
     echo "<tr>";
     for ($colone=1;$colone<8;$colone++) {
         echo "<td align='center'>";
         if ($jours[$ligne][$colone] == $j) {
             // affichage du jour memem
             echo "<b>".$jours[$ligne][$colone]."</b>";
         } elseif ($jours[$ligne][$colone] == 20) {
             // affichage si il y a un evenement
             echo "<a href='#'>".$jours[$ligne][$colone]."</a>";
         } else {
             // sinon affichage normal
             echo $jours[$ligne][$colone];
         }
         echo "</td>";
     }
     echo "</tr>";
 }
 echo "<tr><td align='center'><a href='?m=".$mois_precedent."&a=".$annee_precedente."'><<</a></td><td colspan='5' align='center'>".$mois[$m]." ".$a."</td><td align='center'><a href='?m=".$mois_suivant."&a=".$annee_suivante."'>>></a></td></tr>";
 echo "</table>";
?>


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip [PHP5] LIMÉA XSLT TEMPLATE ENGINE
Source avec Zip Source avec une capture PHP4 - TREEVIEW POUR LES DOSSIERS
Source avec Zip GERER SES FORMULAIRES
Source avec Zip GÉNÉRATEUR DE FLUX RSS 2.0
Source avec Zip CLASSE POUR LES TEMPLATES TOUTE SIMPLE

 Sources de la même categorie

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALCUL DU NOMBRE DE JOURS CONTENUS DANS L'INTERSECTION DE DE... par curphey
CALENDRIER EN 70 LIGNES par tchconst
Source avec Zip CALENDRIER par gabay
CALENDRIER SIMPLE par manuche

Commentaires et avis

Commentaire de thepopolinux le 12/10/2003 18:07:24

Bravo ... tout simplement bravo :)

Commentaire de Tortuegeniale le 13/10/2003 01:01:43

J'aime bien c pratique ;) (par contre la source que t'a posté aprés bof lol)

T'aurai du faire une fonction pour l'affichage, ça aurai é t plus manipulable m'enfin ça enleve pas son interet lol

Si c pour mettre des 1 comme note à une bonne source comme celle si , ça sert a rien de noter, c vraiment pitoyable ...

Commentaire de lumesh le 13/10/2003 09:03:27

Bah vi mais que vx tu ..
En plus meme pas de commentaires ... C'est a croire que la gaminerie refait fureur ces temps ci ......
Mais bon perso je men fou un peu je poste pas des scr pour etre noté ou du genre, donc a vrai dire ca decort plus quautre choses ;) et pis 1 je lavais pas encore celui la lol

Commentaire de defkrie le 14/10/2003 13:45:13

bravo, je connaisais le meme en c++ aux instructions pres;
félicitations ct simple rapide et compréhensible

Commentaire de lumesh le 14/10/2003 19:50:58

ah ouai en C++ ?!
bah c vraiment une coincidence je ne connais meme pas le C++ !!!

Commentaire de djalcatraz le 08/01/2004 22:50:29

Juste une petite correction,

Dans la première prtie du code à la ligne 21

il faut remplacer

if ($m == "") { $m = date("m"); }

par

if ($m == "") { $m = date("n"); }

sinon quand un jour, mois, annee, n'est pas spécifié il ne sait pas récupérer le mois en cours, car il sont définis avec des chiffres du type 1, 2 et pas 01,02...

enfin bref un chtit détail...

à part ça super cool cette source ça va m'éviter quelques tracasseries ;-)

Commentaire de thomas1230 le 09/03/2004 17:00:28

il me msemble que date("L") renvoit 1 si l'année est bissextile ce qui évite de faire le test "à la main"

Commentaire de cxof le 05/01/2005 02:08:40

au secour. se code ne marche pas chez moi pourquoi ???

Commentaire de lumesh le 05/01/2005 09:07:38

Inutile de le poster 2 fois :)
bon bah deja dire que ca ne marche pas est inutile aussi si tu ne precise pas ce qui ne va pas !!!!
deplus as tu verifié que tu ton PHP a bien toutes les extension necessaires ?

Note ici ce qui ne marche pas et je te repondrai dans la mesure du possible.

Commentaire de zoran_8000 le 05/01/2005 10:16:18

J'ai apprté une petite modification au code car je 'aimais pas trop le fait que le jour courant s'affiche sur tout les mois (i.e. : si on est le 4 janvier, le 4 février sera aussi le jour courant !), et en plus au lieu de le mettre en gras je l'ai encadré (préférence personnelle). Voici le code :

(dans tmpl_calendrier.php)

  // Bannière des jours
  echo "<table width='150' cellspacing='0' cellpadding='0' class=day_border>";
  echo "<tr><td align='center'><b>Lu</b></td><td align='center'><b>Ma</b></td><td align='center'><b>Me</b></td><td align='center'><b>Je</b></td><td align='center'><b>Ve</b></td><td align='center'><b>Sa</b></td><td align='center'><b>Di</b></td></tr>";
  echo "</table>";

  // Tableau des jours chiffrés
  echo "<table width='150' cellspacing='0' cellpadding='0' class=cal_border>";
  for ($ligne=1;$ligne<7;$ligne++) {
      echo "<tr>";
      for ($colone=1;$colone<8;$colone++) {
          if ($jours[$ligne][$colone] == $j && $m == $mois_courant && $a == $annee_courante) {
              // affichage du jour memem
              echo "<td align='center' class=cal_today>";
              echo $jours[$ligne][$colone];
              echo "</td>";
           } else {
              // sinon affichage normal
      echo "<td align='center'>";
              echo $jours[$ligne][$colone];
              echo "</td>";
          }
      }
      echo "</tr>";
  }
  echo "</table>";

  echo "<table width='150' cellspacing='0' cellpadding='0' border='0'>";
  echo "<tr><td align='center'><a href='?m=".$mois_precedent."&a=".$annee_precedente."'><<</a></td><td colspan='5' align='center'>".$mois[$m]." ".$a."</td><td align='center'><a href='?m=".$mois_suivant."&a=".$annee_suivante."'>>></a></td></tr>";
  echo "</table>";

(dans calendrier.php)

  // si un jour, mois, annee, n'est pas spécifié alors on recupere la date actuelle
  if (!isset($j) || $j == "") { $j = date("j"); }
  if (!isset($m) || $m == "") { $m = date("n"); }
  if (!isset($a) || $a == "") { $a = date("Y"); }

  // on stocke le mois et l'année courante pour corriger le bug du jour courant qui s'affiche sur tout les mois
  $mois_courant = date("m");
  $annee_courante = date("Y");


PS : vous remarquerez que j'ai rejoint djalcatraz pour ce qui est de l'utilisation de la fct date avec n et j !

Le calendrier est quand même génial ! C'est ce qu'il me fallait merci !

Commentaire de lumesh le 05/01/2005 14:22:02

merci pour les modifications :)

Commentaire de Farandar le 30/03/2005 13:07:44

Bravo tout d'abord pour ce petit code très utile et que je suis en train d'adapter pour mon usage (insertion automatique de date en cliquant sur l'une d'elle dans le calendrier).
Par contre, ce pourrait être une bonne idée de mettre à jour la source avec les corrections apportées par les utilisateurs (à savoir pour rappel :
if ((($a % 4 == 0) && ($a % 100 != 0)) || ($a % 400 == 0))

remplacé par

if(date('L', $a)==1)

et

if ($m == "") { $m = date("m"); }

remplacé par

if (!isset($m) || $m == '') { $m = date('n'); }

Mais je chipote :)

Commentaire de PROTEUS91 le 25/01/2006 00:49:09

Je crain de passer pour newbie, mais bon j'en prends le risque le php n'est absolument pas mon domaine mais je suis curieu. J'ai tester ce code mais le probleme c'est que chez moi il ne fonctionne pas je dois sans doute faire quelque chose mal. Quand je lance la page il m'affiche ceci sur la page.

"; } elseif ($jours[$ligne][$colone] == 20) { // affichage si il y a un evenement echo "".$jours[$ligne][$colone].""; } else { // sinon affichage normal echo $jours[$ligne][$colone]; } echo ""; } echo ""; } echo "<<".$mois[$m]." ".$a.">>"; echo ""; ?>

Est ce que quelqu'un pourrait me renseigner si il a un peu de temps ?

Commentaire de Tortuegeniale le 25/01/2006 01:14:33

Installe PHP avant de tester un script PHP ;)

Soit EasyPhp, soit Wampserver ou alors une config a la main.

Commentaire de smithmetal le 14/03/2006 02:29:46

J'ai ce problème moi :

Fatal error: Call to undefined function: jddayofweek() in /Library/WebServer/WEBWWW/Hebergement/helios/calendar.php on line 24

Commentaire de Dam2aiup le 09/05/2006 09:51:46

Bonjour,

J'ai un probleme lorsque j'utilise ce script et apparement vous n'avez pas eu ce prob. Quand je lance le script les jours du mois en cours ne s'affiche pas en entier il s'arrete à 7. Mais si je clique sur le lien suivant ou precedent pour changer de mois ça marche nikel et quand je reviens sur le mois en cours il s'affiche nikel. Si qq1 a le temps de m'aider se serait sympa !!!

Commentaire de michouik le 17/05/2006 17:38:02

la variable $CAL_FRENCH, d'où vient-elle et à quoi set-elle ?
(Undefined variable: CAL_FRENCH in...)

Commentaire de hassounna le 25/07/2006 14:33:03

bonjour
je suis débutant en php.Je veux ouvrirs ces scriptes et je ne sais pas comment?
je serais tres reconnaissant si quelquin peut m'aider.
merci

Commentaire de michmichman le 16/03/2007 20:27:28

Je reprend le sujet très tard mais ca peut toujours servir a quelqu'un ligne 28 lors de l'apelle de la function "cal_to_jd()"

// on determine a quel jour de la semaine correspond le premier jour du mois affiché
$premierjour = jddayofweek(cal_to_jd($CAL_FRENCH, $m, 1, $a), 0);

Enlever "$" à "$CAL_FRENCH".
cf:"http://us3.php.net/manual/fr/function.cal-to-jd.php"

Commentaire de zakwil le 31/03/2008 15:36:19

$premierjour = jddayofweek(cal_to_jd(CAL_FRENCH, $m, 1, $a), 0);

cal_to_jd renvoyait toujours 0 donc j'ai fait d'une autre façon :

$premierjour = date("w", mktime(0, 0, 0, $m, 1, $a));

Je sais pas si niveau performance c'est mieux ou pas.

Commentaire de hopeway le 30/04/2011 02:43:15

bonsoir,J'ai intégré le script dans mon site par la fonction include et le serveur m'informe que l'index a et m sont undefined alors svp comment je peux récupérer la date mais pas à travers le navigateur???

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,554 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales