cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 2007
-
18 mai 2006 à 08:32
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 2007
-
18 mai 2006 à 13:50
Bonjour ,
Je voudrais savoir s'il existe un moyen en PHP pour convertir un numéro de semaine (numéro de semaine de l'année) en date. C'est-à-dire qu'avec le numéro de semaine, je voudrais retrouver la date du premier jour de cette semaine là.
Par exemple, cette semaine nous sommes en semaine 20, je voudrais réussir à récupérer le premier jour de cette semaine 20, soit le 15/05/2006.
J'ai cherché dans la doc, et je n'ai rien vu permettant de faire une telle chose, alors il faut surement que j'y code à la main, n'est-ce-pas ??
Mais si c'est le cas, je vois plus trop comment faire là ... A part peut-être trouver le premier lundi de l'année, et puis après compter les semaines jusqu'à la mienne pour voir combien de jours sont passés et pour pouvoir calculer cette date.
Alors voilà, est-ce-que je suis dans le vrai ? Ou je me plante complètement ??
cs_chamallow
Messages postés363Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention29 janvier 20071 18 mai 2006 à 13:50
Voilà voilà, j'y suis arrivée à force de réfléchir à partir de ce qu'à donné Teclis01 (parce que ça marchait pas vraiment vraiment bien (enfin c'est pas ce que je voulais ))
Ca donne ça :
$jourAvtSem1 = 0;
$premierJourAnnee = getdate(mktime(0,0,0,1,1,$_POST['annee'])); //On récup la date du premier jour de l'année
$int_ja = (($_POST['semaine'] - 1) * 7); //récupération du nombre de jours écoulés entre le 01/01 et le premier jour de la semaine demandée
if($int_ja==0)
{
//Si le nb de jours écoulés vaut 0, alors on a choisi la 1° semaine de l'année :
/* On teste le numéro du jour dans la semaine pour le premier jour de l'année (afin de savoir ça tombe quel jour) */
switch ($premierJourAnnee['wday'])
{
case 2 :
//Si c'est un mardi, alors on enlève un jour au nb écoulés pour qu'il y ait -1 jour qui se soit écoulé (car le lundi avant ce mardi fait parti de la semaine)
$int_ja = -1;
break;
case 3 :
$int_ja = -2;
break;
case 4 :
$int_ja = -3;
break;
case 0 :
//Si c'est dimanche, on ajoute un jour, car le premier jour de la semaine est toujours un lundi
$jourAvtSem1 = 1;
break;
case 5 :
$jourAvtSem1 = 3;
break;
case 6 :
$jourAvtSem1 = 2;
break;
case 1 :
default :
$jourAvtSem1 = 0;
break;
}
}
else
{
switch ($premierJourAnnee['wday'])
{
case 0 :
$jourAvtSem1 = 1;
break;
case 2 :
$jourAvtSem1 = -1;
break;
case 3 :
$jourAvtSem1 = -2;
break;
case 4 :
$jourAvtSem1 = -3;
break;
case 5 :
$jourAvtSem1 = 3;
break;
case 6 :
$jourAvtSem1 = 2;
break;
case 1 :
default :
$jourAvtSem1 = 0;
break;
}
}
$semPremJour = date("W",mktime(0,0,0,1,1,$_POST['annee']));
echo "1° semaine de l'année : ".$semPremJour."
";
echo "Nb de jours écoulés : ".$int_ja."
";
$str_date_semaine = date("d/m/Y", mktime(0,0,0,1,($jourAvtSem1+1)+$int_ja,$_POST['annee']));
echo "premier jour de la semaine demandée : ".$str_date_semaine;
J'ai testé pour plusieurs années, pour les différents cas, et j'ai trouvé aucune erreur
------------------------------------------------------------------------------------------------------------------
Ilvaut
mieux poser une question et passer pour bête que le rester toutesa v