bonsoir à tous,
je c'est que sur ce coup là je vais abuser et je m'en excuse d'avance.
je lis le contenu d'une table mysql qui me renvoie des chiffres à virgule que je stocke et additionne en temps réelle.
${'heure'.$idr}=${'heure'.$idr}+$row"flighttime"];
le soucis c'est que ces nombre à virgule ont une base de .60 vue que c'est du temps
0.01
0.02
0.03
...
0.59
1
1.01
1.02
donc si je laisse faire le prg je vais me trouver avec ce genre de truc:
0.45+1.35=1.80 si que est vrai, mais dans mon cas, c'est faux car en réalité =2.20
Comment puis je faire pour résoudre ce soucis de base de temps.
une solution clé en main serais très très très apprécier pour une fois.
merci mille fois d'avance.
flo
Bonjour,
merci de ton aide, ça m'a permis d'avancer et de sortir ça qui marche
<?php
$heure_a_virgule1 = 1.55;
$heure_a_virgule2 = 1.09;
$heure_normale = floor($heure_a_virgule1);
$minute_apres_virgule = (($heure_a_virgule1 - $heure_normale )*100);
// récupère le nombre d'heures avant la virgule
$heure_normale2 = floor($heure_a_virgule2);
// récupère les décimales
$minute_apres_virgule2 = (($heure_a_virgule2 - $heure_normale )*100);
$minute_apres_virgule=$minute_apres_virgule+$minute_apres_virgule2;
if ($minute_apres_virgule>59)
{$minute_apres_virgule=$minute_apres_virgule-60;
$heure_normale=$heure_normale+$heure_normale2+1;
}
$heure_a_virgule1=($heure_normale+($minute_apres_virgule/100));
echo 'cumul heure:';
echo $heure_a_virgule1;
?>
et voici une fois intégré dans mon code:
$heure_normale = floor(${'heure'.$idr});
$minute_apres_virgule = ((${'heure'.$idr} - $heure_normale )*100);
$heure_normale2 = floor($row"flighttime"]);
$minute_apres_virgule2 = (($row"flighttime"] - $heure_normale2 )*100);
$minute_apres_virgule=$minute_apres_virgule+$minute_apres_virgule2;
if ($minute_apres_virgule>59)
{
$minute_apres_virgule=$minute_apres_virgule-60;
$heure_normale=$heure_normale+$heure_normale2+1;
}
${'heure'.$idr}=($heure_normale+($minute_apres_virgule/100));
Salut flo3376,
Je pense avoir réussi se que tu cherchais mais je pense également que l'on peut l’optimisé.
/* heure de test 1 (variable contenant l'heure souhaitée)*/
$heure_a_virgule = 1.80;
/* heure de test 2 (variable contenant l'heure souhaitée)*/
$heure_a_virgule = 1.15;
/* récupère le nombre d'heures avant la virgule */
$heure_normale = floor($heure_a_virgule);
/* récupère les décimales avec le zéro : 0.12 */
$minute_apres_virgule = $heure_a_virgule - floor($heure_a_virgule) ;
if ($minute_apres_virgule > 0.60) {
/* ajoute une heure */
$heure_normale = $heure_normale + 1;
/* soustrait 60 minute */
$heure_normale = $heure_normale + ($minute_apres_virgule - 0.60);
/* Résultat test 1 : 2.2 */
echo $heure_normale;
}else{
/* Résultat test 2 : 1.15 */
echo $heure_a_virgule;
}
J'espère c'est bien se que tu cherchais surtout :)
WebMaster Junior chez 123plantes