11485 sujets

JavaScript, DOM et API Web HTML5

Hello tout le monde !

Je souhaiterai l'aide d'une âme charitable pour compléter le bout de script suivant n'étant pas familiarisé avec javascript

- Ce que j'ai : un script qui effectue un tout bête calcul en croix donnant un résultat en minutes (avec une marge de 10%) (ex : 45 minutes - 150 minutes.....)

- Ce que je voudrais : que le résultat en minutes affiche désormais un résultat en minutes si inférieur à 60 minutes et en heures+minutes si supérieur ou égal à 60 minutes (ex : 30 minutes - 1 heure 20 - 2 heures 30....)

Pas besoin des secondes !

    function calculate() {
    	var input1 = parseFloat(document.getElementById("valeur3").value);
        var input2 = parseFloat(document.getElementById("valeur1").value);
        var input3 = parseFloat(document.getElementById("valeur2").value);
       var resultat = parseFloat(((input2 * input3) - (input2 * input3 * 0.10)) / input1);
        document.getElementById("totalcalcul").innerHTML = resultat;
    };


Je vous épargne l'HTML qui contient pas mal de données mais dites moi si vous en avez besoin pour comprendre le détail du calcul.
Modérateur
Salut Gianni54,

Il s'agit d'une simple division... quand tu as ton nombre total de minutes il te suffit de la diviser par 60 et de garder le résultat entier et le reste.... le résultat entier est le nombre d'heure et le reste les minutes restantes ene dessous de 60. Un simple recherche google te donnera le code correspondant :
For some number y and some divisor x compute the division (div) and remainder (rem) as:
var div = Math.floor(y/x);
var rem = y % x;

from http://stackoverflow.com/questions/4228356/integer-division-in-javascript

voila un exemple rapide dans un fiddle : https://fiddle.jshell.net/jxdux6sx/

reste l'arrondissement...
Merci pour ta réponse

En fait j'avais bien compris le principe du calcul : diviser par 60 les minutes et faire 60% avec le restant mais c'est l'appliquer dans un calcul javascript qui me posait problème !
Du coup j'ai fait ceci ce qui est parfaitement fonctionnel

    function calculate() {
    	var input1 = parseFloat(document.getElementById("valeur3").value);
        var input2 = parseFloat(document.getElementById("valeur1").value);
        var input3 = parseFloat(document.getElementById("valeur2").value);
       var resultat = parseFloat(((input2 * input3) - (input2 * input3 * 0.10)) / input1);
      var heure = Math.floor(resultat / 60);
      var minutesRestantes = resultat % 60;
        document.getElementById('totalcalcul').innerHTML = resultat + 'min = ' + heure + 'h ' + minutesRestantes + 'min';
		}


Merci de ton aide en tout cas !
Modifié par Gianni54 (03 May 2016 - 17:49)