Calcul de dates

cs_aulo Messages postés 23 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 23 mai 2006 - 26 janv. 2006 à 11:02
cs_aulo Messages postés 23 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 23 mai 2006 - 15 févr. 2006 à 08:43
Bonjour,
Je suis en train de remettre au gout du jour un vieux classeur excel
(avec plein de vieilles fonction très lourdes) en le transformant en php + mysql...

Pour faire simple, je recense le temps qu'une personne à passée dans un service mois par mois en fonction d'une date d'entrée et d'une date de sortie...

Petit exemple :
Une personne est entrée le 15/01/2005 et qu'elle est sortie le
15/03/2005, je veux avoir dans ma colonne janvier 15, dans ma colonne
fevrier 28 et dans ma colonne mars 15. Et bien sur vu que la personne
est sortie au 15/03/2005, je ne veux rien dans les colonnes des autres
mois.

J'ai déjà le nombre de jours passé entre mes deux dates (donc pas
grand chose on est d'accord) maintenant il me faudrait disséquer ce
nombre pour alimenter les colonnes de chaques mois (si besoin)...
Avez vous une petite idée, une trame ou quelque chose à me proposer ?
Merci

3 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 janv. 2006 à 13:10
Hello,

hmm...
on peut bidouiller, si tu as ces deux dates, et si j'ai bien compris ce que tu veux :
<?php
$date1 = '15/01/2005';
$date2 = '15/03/2005';
$moisDep = (int) substr ($date1, 3, 2);
$moisArr = (int) substr ($date2, 3, 2);
$jour = substr ($date1, 1, 2);$aMois array (1> 'janvier', 2 => 'février' ... etc);
for ($i = $moisDep; $i <= $moisArr; $i++ ) { $sQuery ' UPDATE table SET '.$aMois[i].' '.$jour.' WHERE...';
$rRequete = mysql_query ($sQuery);
}
?>

Bon là je me rends compte que tu veux le dernier jour des mois intermédiaires, et pas le 15 partout ;-)
Bref, tu as compris le principe. Le but ensuite et de faire un tableau, en plus, pour l'année 2005, avec comme clef le numéro du mois, et comme valeur associée le dernier jour du mois (28, 30 ou 31). Tu peux le faire avec mktime. Ou tu regardes un calendrier... ;-)
0
cs_aulo Messages postés 23 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 23 mai 2006
26 janv. 2006 à 14:22
Je dois t'avouer que je ne suis qu'un petit débutant et que par conséquent ton histoire de tableau me trouble un peu...
Ce qui me rassure (un tout petit peu !) c'est que j'avais déjà pensé aux variables dont tu parle... Le problème c'est que je n'arrive pas à assembler le puzzle...
Mon exemple était un peu trop simpliste... En fait les dates ne sont pas forcement au 15 du mois elles peuvent être... tous les jours du mois !
Mon idée était en fait, si la date de sortie n'est pas renseignée :
Soustraire au nombre de jour total (datejour - datedeb)(ça j'ai) le numéro de jour du mois en cours (ça j'ai aussi) de façon à avoir le nombre de jour passé dans le mois...
Ensuite, pour les mois précédents (je parts à l'envers), je voulais, tant que le numéro de mois est > à 0 mettre en variable chaque mois et lui attribuer une valeur qui correspond au nombre de jour total (mis à jour suivant les soustarctions faites précédemment) moins le nombre de jour du mois jusqu'à arriver avant janvier est mettre le nombre de jour qu'il me reste (le nombre de jours passés avant janvier est juste là à titre indicatif...)
Pareil si la date de fin est renseignée...
Là comme ça dans ma tête et à l'instant présent ça paraît clair... mais en le relisant beaucoup moins ;o)
Une idée pour mettre ça en 01010101 !!!
0
cs_aulo Messages postés 23 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 23 mai 2006
15 févr. 2006 à 08:43
Help please... Quelqu'un a-t-il une idée lumineuse...
Merci
0
Rejoignez-nous