PB de calendrier

cs_007berty Messages postés 13 Date d'inscription mercredi 26 décembre 2007 Statut Membre Dernière intervention 16 janvier 2009 - 13 janv. 2009 à 09:48
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 - 13 janv. 2009 à 10:07
Bonjour!
j'ai pour thème de personnaliser le calendrier du site web de mon village en notre langue et de façon dynamique.c'est ici href= "http://www.bafou.com/calendrier.php".
Mais avant tout je vais vous expliquez comment ce calendrier fonctionne car ci celui-ci n'était pas particulier, je ne me permettrais pas de vous déranger.
En fait,ce calendrier a sa façon d'appeler les jours de la semaine en plus des jours que nous connaissons tous; je m'explique: si nous sommes aujourd'hui le lundi 12 janvier 2009 et que le jour correspondant en notre langue est"jambo", ce jour "jambo" apparaitra encore mais non plus le lundi 19 janvier 2009, mais plutot le mardi 20 janvier 2009; et c'est la meme chose pour les autres jours. vous voyez donc qu'il y a un décalage de 7 jours+1. c'est donc faire un système pareil qui me pose problème et c'est pour cela que je sollicite votre aide.
NB: voici le lien de la page qui contient l'image du calendrier :href="http://www.bafou.com/calendrier.php".
Voici le code php du calendrier que j'aimerai personnalisé pour qu'il réponde à mon besoin:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="calendrier.css" />
<title>Mon calendrier</title>
</head>


<?php

if(!isset($_GET['m']) && !isset($_GET['y']))
{
// Si on ne récupère rien dans l'url, on prend la date du 1er jour du mois actuel.
$timestamp = mktime(0, 0, 0, date('m'), 1, date('Y'));
}


else
{
// Sinon on récupère la date du 1er jour du mois donné.
$timestamp = mktime(0, 0, 0, $_GET['m'], 1, $_GET['y']);
}

?>
<?php

/* Si le mois et l'année de la variable $timestamp correspondent au mois et à l'année d'aujourd'hui, on retient le jour actuel.
Sinon le jour actuel ne se situe pas dans le mois et on ne retient rien */

if(date('m', $timestamp) date('m') && date('Y', $timestamp) date('Y'))
{
$coloreNum = date('d');
}

?>
<?php

$m array("01"> "Janvier", "02" => "Février", "03" => "Mars", "04" => "Avril");
$m +array("05"> "Mai", "06" => "Juin", "07" => "Juillet", "08" => "Août");
$m +array("09"> "Septembre", "10" => "Octobre", "11" => "Novembre", "12" => "Décembre");

$j = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
// Souvenez-vous que les dates en PHP commencent par dimanche !

?>
<?php

$numero_mois = date('m', $timestamp);
$annee = date('Y', $timestamp);

if($numero_mois == 12)
{
// Dans le cas du mois de décembre
$annee_avant = $annee;
$annee_apres = $annee + 1; // L'année d'après change
$mois_avant = $numero_mois - 1;
$mois_apres = 01; // Le mois d'après est janvier
}
elseif($numero_mois == 01)
{
// Dans le cas du mois de janvier
$annee_avant = $annee - 1; // L'année d'avant change
$annee_apres = $annee;
$mois_avant = 12; // Le mois d'avant est décembre
$mois_apres = $numero_mois + 1;
}
else
{
// Il ne s'agit ni de janvier ni de décembre
$annee_avant = $annee;
$annee_apres = $annee;
$mois_avant = $numero_mois - 1;
$mois_apres = $numero_mois + 1;
}

/*
// Lien pour aller au mois précédent
echo '[?m='.$mois_avant.'&y='.$annee_avant.' <<]';


// Affichage du mois et de l'année
echo ' '.$m[$numero_mois].' '.$annee.' ';


// Lien pour aller au mois suivant
echo '[?m='.$mois_apres.'&y='.$annee_apres.' >>]';
*/
?>
<?php

$numero_jour1er date('w', $timestamp); // 0> Dimanche, 1 => Lundi, 2 = > Mardi...

// Changement du numéro du jour car l'array commence à l'indice 0.
if ($numero_jour1er == 0)
{
/*
Si c'est dimanche, on le place en 6e position
(car on commencera notre boucle à 0)
*/
$numero_jour1er = 6;
}
else
{
// Sinon on met lundi à 0 ou mardi à 1 ou mercredi à 2...
$numero_jour1er--;
}

?>
<caption>
<?php
// Lien pour aller au mois précédent
echo '<<';

// Affichage du mois et de l'année
echo ' '.$m[$numero_mois].' '.$annee.' ';

// Lien pour aller au mois suivant
echo '>>';
?>
</caption>

----

Lu |
Ma |
Me |
Je |
Ve |
Sa |
Di |

<!-- On placera le code php ici -->
<?php

echo '----
'; // Nouvelle ligne du tableau (celle de la 1ère semaine, donc)

// Écriture de colonnes vides tant que le mois ne démarre pas.
for($i = 0 ; $i < $numero_jour1er ; $i++)
{
echo ', ';
}

for($i = 1 ; $i <= 7 - $numero_jour1er; $i++)
{
echo ''.$i.', ';
}

echo '';

?>
<?php

$nbLignes = ceil((date('t', $timestamp) - ($i-1)) / 7);

?>

<?php
for($ligne = 0 ; $ligne < $nbLignes ; $ligne++)
{
echo '----
'; // Nouvelle ligne du tableau (celle de la nouvelle semaine)

for($colone = 0 ; $colone < 7 ; $colone++)
{
if($i <= date('t', $timestamp))
{
echo ''.$i.', ';
}
else
{
// On a fini d'écrire le mois on termine la tableau par des cellules vides
echo ', ';
}

$i = $i +1;
}

echo '';
}

?>



</html>
et voici le code CSS carrespondant:
/* CSS Document */
caption /* Titre du tableau */
{
margin: auto; /* Centre le titre du tableau, ça rend mieux */
font-family: "Trebuchet MS", Arial, "Times New Roman", serif;
font-size: 1.2em; /* taille de la police */
color: #556dff; /* Couleur du texte */
margin-bottom: 10px; /* Marge avec le tableau */
}
table /* Le tableau en lui-même */
{
margin: auto; /* Centrons notre tableau */
border: 2px inset blue; /* Bordure bleue effet 3D */
border-collapse: separate; /* Rend les cellules indépendantes les unes des autres */
}
th /* Les cellules d'en-tête */
{
background-color: #7ba3ff; /* Couleur de fond */
color: white; /* Couleur du texte */
font-size: 1.1em; /* Taille des jours */
font-family: "Trebuchet MS", Arial, "Times New Roman", serif;
}
.lienCalendrier /* Les cellules normales */
{
border: 1px solid black;
border-style: dotted; /* Une bordure en pointillés */
font-family: "Trebuchet MS", Arial, "Times New Roman", serif;
text-align: center; /* Tous les numéros des cellules seront centrés*/
padding: 1px; /* Marge intérieure aux cellules */
empty-cells: show; /* Révèle les cellules vides */
}

.lienCalendrierJour {
/* La cellule du jour actuel dans le calendrier */
background-color: rgb(86, 139, 239);
}

s'il vous plait aidez moi, je suis déja à cours d'idée
Merci d'avance!
Merci d'avance!

1 réponse

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
13 janv. 2009 à 10:07
Deja c'est pas la bonne section tu devrais être sur PHP!
Sinon...
C'est pas bordélique déjà >_<
un cycle de semaine sur 8 jours...
Comment sait on quel jour (des 8) sera le 1er janvier d'une année n?

PS: ton image est pourrie on arrive pas a lire les labels des jours.Quels sont les labels des mois ?

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0