Se connecter / S'enregistrer
Votre question

[Résolu] Créer un calendrier en PHP

Tags :
  • Programmation
Dernière réponse : dans Programmation
12 Juin 2008 13:36:56

Bonjour à tous,

Comme spécifié dans le titre du sujet, je souhaiterai créer un calendrier en PHP.

J'ai déjà commencé à travailler dessus et j'obtiens ça :
http://para.e.free.fr/Calendrier/

Pour le mois en cours, cela semble fonctionner... Mais pour les mois d'avant et après, cela ne fonctionne pas ! Pour créer le calendrier du mois suivant et du mois d'avant, je me basais sur le premier jour du mois en cours que j'incrémentais & Cie mais je me suis rendu compte que cette méthode n'était pas fiable ni pratique...

Il me faudrait donc pouvoir créer le calendrier à partir de l'année et du mois en cours. Mais comment savoir si nous sommes un Lundi, un Mardi... le 1er jour du mois en cours ? Faut-il obligatoirement se baser sur la date du jours pour le déterminer ou existe t'il une fonction en Php qui permet de le déterminer ?

Merci d'avance !

Autres pages sur : resolu creer calendrier php

12 Juin 2008 14:03:50

a ce que j'ai pu voir tu dois avoir un probleme dans ta fonctio ncar ce reprend toujours un jeudi pour le premier du mois ... essaie de modifer ta fonction pour que ca s'auto-incremente et donc aille au jour suivant

exemple :
dans un tableau les jour de la semaine => t[0] lundi t[1]mardi ... t[6]dimanche

compteur i=0 quand i>6 revient a 0 ( la semaine )

tu fais des boucle disant que ca s'auto incremente et r=i

et tu aura les bon jours de la semaine qu ise suivent

enfin c'est comme cela que je vois la chose :p 
12 Juin 2008 14:18:35

Ben en fait j'aimerai revoir complètement le mode de fonctionnement actuel. En fait pour visualiser le moi d'Avril, je suis obligé de passer par le mois de Juin puis Mai... Et je ne trouve pas ca terrible, surtout que le passage de variable actuel bug un peu beaucoup comme tu as pu le remarquer ! Donc plutôt que de m'entêter dans ma première idée et me prendre la tête à faire des calculs pour trouver le premier jours du mois, n'est-il pas possible de connaitre ce fameux premier jour du mois d'une autre façon ?
Contenus similaires
13 Juin 2008 11:18:35

Bon j'avance doucement...

Mais j'ai un problème sur un bout de code :

  1. //Test année bissextile
  2. if (date('L')==1) {
  3. $mois_annee = array(1 => '31','29','31','30','31','30','31','31','30','31','30','31');
  4. } else {
  5. $mois_annee = array(1 => '31','28','31','30','31','30','31','31','30','31','30','31');
  6. }
  7. $mois_en_cours = date('n');
  8. $nb_jour_mois = $mois_annee[$mois_en_cours] + 1;
  9. $premierJ_mois = array(1 => '0','0','0','0','0','0','0','0','0','0','0','0');
  10. $premierJ_mois[$mois_en_cours] = $reste_jour;
  11.  
  12. //Sens à 1 si le mois en cours de calcul est supérieur au mois actuel
  13. $sens=1;
  14. $j=1;
  15. for ($i=1;$i<12;$i++) {
  16. if (($mois_en_cours + $i)>12) {
  17. $sens=0;
  18. }
  19. if ($sens==1) {
  20. $premierJ_mois[$mois_en_cours+$i] = ($premierJ_mois[$mois_en_cours+$i-1] + $mois_annee[$mois_en_cours+$i])%7;
  21. } else {
  22. $premierJ_mois[$mois_en_cours-$j] = ($premierJ_mois[$mois_en_cours-$j+1] - 1 + $mois_annee[$mois_en_cours-$j])%7;
  23. $j++;
  24. }
  25. }


Le problème, c'est que lorsque je fais le calcul manuellement, tout semble OK... et à la fin j'ai une différence de "1" qui vient de je ne sais où...

Donc je suis un peu dans le flou...

PS : Pour le calcul des mois précédents, je verrais pour plus tard le problème :D 
13 Juin 2008 14:49:30

A y est, j'ai fini la 1ére partie de mon calendrier ! Enfin, je pense... les résultats affichés sont bon ! Est-ce qu'ils le seront encore demain ??? J'espère...

Voici le bout du code qui m'a le plus posé de problème :

  1. for ($i=1;$i<12;$i++) {
  2. if (($mois_en_cours + $i)>12) {
  3. $sens=0;
  4. }
  5. if ($sens==1) {
  6. $premierJ_mois[$mois_en_cours+$i] = ($premierJ_mois[$mois_en_cours+$i-1] + $mois_annee[$mois_en_cours+$i-1])%7;
  7. } else {
  8. $premierJ_mois[$mois_en_cours-$j] = 6 - (abs($premierJ_mois[$mois_en_cours-$j+1] + 1 - $mois_annee[$mois_en_cours-$j]))%7;
  9. $j++;
  10. }
  11. }


J'y suis allé un peu à taton (entre les modulos, les valeurs absolues...) pour la fin et le résultat est correct ! Maintenant, je me demande si demain ou encore le mois prochain, le résultat sera encore correct... Mais j'ai bon espoir :D 

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS