A voir également:
- Calcul date php
- Calcul moyenne excel - Guide
- Easy php - Télécharger - Divers Web & Internet
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel calcul surface terrain gratuit - Télécharger - Outils professionnels
8 réponses
Dans mon post précédent je t'ai fait le calcul BOURIN de l'age, sans tenir compte de la date anniversaire, alors voici un calcul plus précis.
On a 20 ans lorsque la date anniversaire est passée.
On a 20 ans lorsque la date anniversaire est passée.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Exercice 6</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <center> <h2>2004-2005 TSIG1B</h2> <?php $tab = file("tsig1b.txt"); ?> <table border = "2px solid black"> <tr> <td>Nom</td> <td>Prénom</td> <td>Date de Naissance</td><td>Age</td> </tr> <?php for ($i = 0; $i < count($tab); $i++){ $ligne = explode(";",$tab[$i]); $array_date_naissance=explode("/",$ligne); // si date de naissance sous la forme jj/mm/aaa $jour_naiss=$array_date_naissance[0]; $mois_naiss=$array_date_naissance[1]; $annee_naiss=$array_date_naissance[2]; $jour_actu=date('d'); $mois_actu=date('m'); $an_actu=date('Y'); if($mois_naiss==2 AND $jour_naiss==29 AND date('L')==0 ){ // pour ceux qui sont nés une année bissextile et que l'on est pas une année bissextile // on ramene le jour de naiss à 28 sinon condition $jour_actu >= $jour_naiss ci desoous ne sera jamais remplie $jour_naiss=28; } if($mois_actu >= $mois_naiss AND $jour_actu >= $jour_naiss){ //si la date anniversaire est égale ou dépassée $age=$an_actu-$annee_naiss; }else{ $age=$an_actu - $annee_naiss -1; } echo "<tr>"; for ($j = 0; $j < count($ligne); $j++) { echo "<td>$ligne[$j]</td>"; } echo "<td>".$age." ans </td>"; echo "</tr>"; } ?> </table> </center> </body> </html>
Une solution:
tu cree un tableau avec en clef le jour de commande et en valeur le delta à rajouter.
exemple $tableau=array("lundi"=>4,"mardi"=>6,"mercredi"=>6, etc...);
ensuite $date_livr=$date_cde+$tableau[date_cde];
Attention pour travailler sur les dates il vaut mieux passer par le timestamp (donc dans ce cas en tenir compte dans le delta)
tu cree un tableau avec en clef le jour de commande et en valeur le delta à rajouter.
exemple $tableau=array("lundi"=>4,"mardi"=>6,"mercredi"=>6, etc...);
ensuite $date_livr=$date_cde+$tableau[date_cde];
Attention pour travailler sur les dates il vaut mieux passer par le timestamp (donc dans ce cas en tenir compte dans le delta)
precision complementaire:
dans $tableau[date_cde] le parametre date_cde est le jour de la semaine de la date cde c a d lundi mardi etc,
pour le retrouver depuis la date de commande voir la fonction date(......) de php
par exemple transformer la date de cde en timestamp puis extraire le jour semaine (en anglais) par date("l",timestamp_date_cde) et dans l'array mettre les jours en anglais bien sûr.
Recherche sur Google pour ttes ces fonctions.
Timestamp c'est le nombre de secondes écoulées depuis le 1 ier janvier 1970.
Donc le delta timestamp pour un jour c'est 24 x 3600
J'espère que cette piste te rendra service.
dans $tableau[date_cde] le parametre date_cde est le jour de la semaine de la date cde c a d lundi mardi etc,
pour le retrouver depuis la date de commande voir la fonction date(......) de php
par exemple transformer la date de cde en timestamp puis extraire le jour semaine (en anglais) par date("l",timestamp_date_cde) et dans l'array mettre les jours en anglais bien sûr.
Recherche sur Google pour ttes ces fonctions.
Timestamp c'est le nombre de secondes écoulées depuis le 1 ier janvier 1970.
Donc le delta timestamp pour un jour c'est 24 x 3600
J'espère que cette piste te rendra service.
Encore moi
Il faut aussi gérer les fériés!
tu peux t'inspirer de cette fonction sur le site
https://codes-sources.commentcamarche.net/
Bye
Il faut aussi gérer les fériés!
tu peux t'inspirer de cette fonction sur le site
https://codes-sources.commentcamarche.net/
Bye
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjouur!
je suis en premiere année de bts ig acctuellement je suis en cours je travail sur php la prof nous a donne un exo c de prendre toute la liste des eleve avec leur nom et prenom et a laide dun calcul on doi trouver leurs age et ca jarrive pas je vous montre mon programme et svp envoyer moi la bonne solution merci davance
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Exercice 6</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<center>
<h2>2004-2005 TSIG1B</h2>
<?php
$tab = file("tsig1b.txt");
?>
<table border = "2px solid black">
<tr>
<td>Nom</td> <td>Prénom</td> <td>Date de Naissance</td><td>Age</td>
</tr>
<?php
for ($i = 0; $i < count($tab); $i++){
$ligne = explode(";",$tab[$i]);
echo "<tr>";
for ($j = 0; $j < count($ligne); $j++) {
echo "<td>$ligne[$j]</td>";
}
echo "<td></td>";
echo "</tr>";
}
?>
</table>
</center>
</body>
</html>
je suis en premiere année de bts ig acctuellement je suis en cours je travail sur php la prof nous a donne un exo c de prendre toute la liste des eleve avec leur nom et prenom et a laide dun calcul on doi trouver leurs age et ca jarrive pas je vous montre mon programme et svp envoyer moi la bonne solution merci davance
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Exercice 6</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<center>
<h2>2004-2005 TSIG1B</h2>
<?php
$tab = file("tsig1b.txt");
?>
<table border = "2px solid black">
<tr>
<td>Nom</td> <td>Prénom</td> <td>Date de Naissance</td><td>Age</td>
</tr>
<?php
for ($i = 0; $i < count($tab); $i++){
$ligne = explode(";",$tab[$i]);
echo "<tr>";
for ($j = 0; $j < count($ligne); $j++) {
echo "<td>$ligne[$j]</td>";
}
echo "<td></td>";
echo "</tr>";
}
?>
</table>
</center>
</body>
</html>
Essayes ça:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Exercice 6</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <center> <h2>2004-2005 TSIG1B</h2> <?php $tab = file("tsig1b.txt"); ?> <table border = "2px solid black"> <tr> <td>Nom</td> <td>Prénom</td> <td>Date de Naissance</td><td>Age</td> </tr> <?php for ($i = 0; $i < count($tab); $i++){ $ligne = explode(";",$tab[$i]); $array_annee_naiss=explode("/",$ligne[2]);//si annee de naissance sous la forme jj/mm/aaaa $annee_naissance=$array_annee_naiss[2]; $annee_actuelle=date("Y"); //calcul brut si ne en 1988, on est en 2008 age=20 $age=$annee_actuelle-$annee_naissance; echo "<tr>"; for ($j = 0; $j < count($ligne); $j++) { echo "<td>$ligne[$j]</td>"; } echo "<td>".$age." ans </td>"; echo "</tr>"; } ?> </table> </center> </body> </html>