Convertir heures minutes en heures centièmes

mercior63 Messages postés 3 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 24 mai 2011 - 24 mai 2011 à 10:55
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 - 24 mai 2011 à 16:22
Bonjour,
Je cherche à convertir des heures minutes en heures centièmes (07:30 devient 7.50).07:30 est la valeur qui est saisi dans le formulaire et afin de faire des controles j'ai besoin de le convertir en 7.50 (ex de controle <7.30 et >9).
Cela fait 2 h que je cherche sur différent site. Merci de votre aide.
Je l'ai en php mais il me le faut en javascript afin de faire le controle afin de poster le formulaire.
Exemple ci dessous en php:
function getHeureCentieme($heure)
{
// exemple pour 07:55
// floatval() Convertit une chaîne en nombre à virgule flottante
// intval() Retourne la valeur numérique entière équivalent d'une variable
// substr_replace()Remplace un segment dans une chaîne (remplace les : par un .
$heurereel = floatval(substr_replace ( $heure, '.', 2, 1)); //on obtient 7.55
$nbheure = intval(substr_replace ($heure, '.', 2, 1)); // on obtient 7
//obtenir le nombre de minute réel
$minutesup = $heurereel - $nbheure; // on obtient 0.55
//heure centieme
$result = ((($nbheure * 60)+($minutesup * 100))/60); //on obtient 7:92
return $result;
}

PS: Mr le modérateur, pour le thème je ne suis pas sùre d'avoir choisi le bon
A voir également:

3 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
24 mai 2011 à 14:51
Salut,

Algorithme :
- traitement de la chaine saisie par l'utilisateur :
- -> vérification du bon format
- -> découpage en 2 variables numériques représentant les heures et les minutes
- transformation des minutes en quantièmes d'heure (minute/60)
- addition de cette valeur au nombre d'heures et le tour est joué

Rappel JS :
- la fonction mastring.split(char), qui va te permettre de découper la chaine saisie (mastring) en deux, autour du caractère char (ce sera ':' dans ton cas),
- la fonction parseFloat(string) qui permettra de transtyper les deux morceaux en float,

Avec ça tu devrais y arriver ;)

Bon code
0
mercior63 Messages postés 3 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 24 mai 2011
24 mai 2011 à 16:08
Merci.
Je n'ai pas utilisé le ParseFloat car je n'ai pas vu comment l'utilisé
Voici le code que j'ai écrit, il pourra servir à d'autre (il n'est peut être pas top mais il fonctionne)

// Variable saisie heurMatDe sous la forme 07:30
var heuresplit=heurMatDe.value.split(':');
var heurereel = 0;
// Permet de mettre l'heure sous la forme décimel 07.30
heurereel=heuresplit[0]+"."+heuresplit[1];
nbHeure=heuresplit[0];
nbMinute =heurereel - heuresplit[0];
// calcule heure en centième 07.50
result=((nbHeure*60)+(nbMinute*100))/60;
alert("heurdebut mat="+result);
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
24 mai 2011 à 16:22
Bon, tu as pondu du code donc j'ai le droit de t'écrire ma version ^^

// la fonction de transformation
function transformHour(strTime) {
var splited = strTime.split(":");
// on vérifie que le format est correct
if (splited.length != 2) return -1;
// on récupère les 2 valeurs numériques
try {
var nbHours = parseFloat(splited[0]);
var nbMinutes = parseFloat(splited[1]);
if (nbMinutes > 59) return -1;
} catch (err) { return -1; }
// on retourne le résultat du calcul
return (nbHours + nbMinutes/60);
}
// son utilisation
var numericHour = transformHour(document.getElementById("heurMatDe").value);
if (numericHour == -1)
alert("L'heure saisie est incorrecte");
else
alert("Vous avez saisi " + numericHour + " heures");
0
Rejoignez-nous