CALENDRIER

cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 - 1 mars 2005 à 16:05
kortex27 Messages postés 1 Date d'inscription lundi 3 octobre 2005 Statut Membre Dernière intervention 13 avril 2006 - 13 avril 2006 à 14:56
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29846-calendrier

kortex27 Messages postés 1 Date d'inscription lundi 3 octobre 2005 Statut Membre Dernière intervention 13 avril 2006
13 avril 2006 à 14:56
bien ton script "xxmopxx". par contre peux-tu m'expliquer où faire la modif pour changer le couleur du texte et mettre la case du jour en cours d'une autre couleur que le texte. merci
xXMoPXx Messages postés 22 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 23 novembre 2005
7 juil. 2005 à 11:22
Ils y sont les if :s
cs_belfo Messages postés 7 Date d'inscription samedi 15 mars 2003 Statut Membre Dernière intervention 27 juin 2005
29 mai 2005 à 14:41
l'erreur est la

[calendrier.php?month=<? echo $monthnb - 1; ?>&year=<? echo $year; ?> <<] <? echo($month.' '.$year); ?> [calendrier.php?month=<? echo $monthnb + 1; ?>&year=<?php echo $year; ?> >>]</th></th>

En fait tu fait +1 et -1, donc 1-1 = 0
et 12+1=13

faudrait des if^^
xXMoPXx Messages postés 22 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 23 novembre 2005
15 mars 2005 à 18:49
Bizarre car je gère ca avec la partie suivante du code :

if(!isset($_GET['month'])) $monthnb = date("n");
else {
$monthnb = $_GET['month'];
$year = $_GET['year'];
if($monthnb <= 0) {
$monthnb = 12;
$year = $year - 1;
}
elseif($monthnb > 12) {
$monthnb = 1;
$year = $year + 1;
}
}

donc normallement pas de janvier 13 ni de decembre 0 :s

Merci pour le /th en effet j'ai rectifié cette erreur sur mon site :)
cs_Gecko62 Messages postés 25 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 octobre 2012
7 mars 2005 à 21:00
J'aime bien cette source simple et efficace,
point de commentaire sur les quotes simples ou doubles, je ne suis pas un puriste, et cela n'empêche pas mes modestes codes de fonctionner.
Voici néanmoins une petite remarque, j'ai un petit bug au changment d'année dans un sens ou dans l'autre Janvier s'appelle des fois 13 et décembre des fois 0 et je ne vois pas pourquoi ! J'ai simplement copié le code dans une nouvelle page !
Alors que sur ton site tout va bien ! Où se cache la différence ?
memotxt Messages postés 8 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 8 mars 2007
7 mars 2005 à 20:35
Bonjour,

La ligne
else echo('<td>'.$calendar[$i][$j].'</th>');
est à remplacer par
else echo('<td>'.$calendar[$i][$j].'</td>');

Cordialement,
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
4 mars 2005 à 21:57
ah t'as mis a jours en laissant tout ces else if...

remplace par des switchs, ça sera plus propre et plus rapide...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
2 mars 2005 à 14:12
sinon, un switch pourait remplacer tes else if...
xXMoPXx Messages postés 22 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 23 novembre 2005
2 mars 2005 à 14:11
Ok coucou747, j'avais pas vu ca :) je changerais les " par des ' dès le prochain update :)
xXMoPXx Messages postés 22 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 23 novembre 2005
2 mars 2005 à 14:03
"Je pense qu'avec un petite relookage il va remplacer celui que j'utilise." Tu m'en vois honoré :)

Etant donné que je n'utilise qu'une fois le nom du mois et que je pense, mais je me trompe peut être, que le if et else if doit être moins lourd qu'une construction de tableau à chaque rechargement de page, je ne construit pas de tableau pour le mois.

Une fonctionnalité agenda sera rajouté plus tard, c'est un calendrier de base pour l'instant, avec un code plutot léger et c'est ce que je voulais (pour l'instant) :) mais yaura moyen de mettre ac en place, avec alertes etc...
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
2 mars 2005 à 14:01
($month == "12"

c'est pas pour la fonction date...

je ne vois pas pourquoi ça bugerais...
_Thy_ Messages postés 33 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 19 septembre 2005
2 mars 2005 à 11:50
J'aime bien, surtout la navigabilité, mais :
Pourquoi n'utilises-tu pas un tableau pour nommer tes mois comme tu le fais avec les jours ?
(et puis les couleurs de ton grab... mais ça c'est affaire de goûts et si ça plait pas c facile à changer) ;)

Pour les fonctionnalités à ajouter j'y verrais bien un petit agenda, avec la case d'une couleur différente s'il y a un évènement ce jour-là.

Je pense qu'avec un petite relookage il va remplacer celui que j'utilise.
xXMoPXx Messages postés 22 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 23 novembre 2005
2 mars 2005 à 09:00
à GRenard : le $day j'ai oublié de le retirer, il ne sert pas a grand chose.

à coucou747 : Pour mes quotes, j'utilise des simples dans le php sauf pour la fonction date (bizarrement si je met des simples ca bug) et j'utilise des doubles pour le code html. Et mes acolades sont toutes suivies de retour à la ligne :s

Pour le calcul en fait, je construit mon tableau calendrier par ligne. Le nombre de ligne est inferieur ou égal au nombre de jours dans le mois divisé par 5. Pourquoi 5 ? par ce que 7 ne donnait pas de résultats satisfaisants.. Serieusement c'est une marge de sécurité pour avoir toutes les lgiens d'un mois (avec 7 ou 6 des mois auraient été tronqués).

$j <= 7 && $j-$z+1+(($i*7)-7) <= $nbdays : deuxième boucle, pour le remplissage des lignes de mon tableau. $j de 1 à 7 donc (pour chaque jour de la semaine), mais aussi $j(indice courant)-$z(nombre numérique du premier jour du mois (lu=1, ma=2,etc...)+1(très important sinon calcul faux, car on commence de 1 et non 0)+(($i*7)-7) (pour chaque ligne incrementer la valeur de $j par i*7, mais vu qu'on commence a $i = 1 on soustrait 7 )

Bref toute cette ligne pour avoir le numéro du jour correspondant à l'indice $j et à la ligne $i.

if($j < $z && ($j-$z+1+(($i*7)-7)) <= 0) : si $j inferieur au mon premier jour du mois et calcul du jour correspondant aux indices de parcours inferieurs ou égal à 0, onj ne remplit pas la valeur du tableau aux indices correspondants sinon on met la valeur.

Et voilà le tableau construit :)
un echo('');
print_r($month); donnera déja un appercu du calendrier :)

En esperant avoir été clair mais c'est pas évident a expliquer et je suis pas du tout pedagogue ^^
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 mars 2005 à 19:16
moi ce que je regardais c'était le styloe de codage...

parfois tu reviens à la ligne après les acolades parfois tu ne reviens pas à la ligne... Parfois tu mets des simples quotes parfois des doubles...

y a plein de choses que je ne comprends pas.... commente plus tes calculs stp...
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
1 mars 2005 à 16:05
C'est pas mal, c'est une bonne idée plutot que de calculer à chaque fois les année bissextile et tout le kit...
mais à quoi sert : $day ?
Rejoignez-nous