Je suis désolé si quelque chose de similaire pourrait être discuté auparavant, mais j'ai vraiment besoin d'aide.

Ci-dessous, le code que je veux faire est que si le nombre dépasse 24 heures, il devrait passer à 1 jour et 0 h, je ne peux pas savoir si quelqu'un peut expliquer comment le faire, ce serait si gentil. Je l'utilise pour calculer les minutes et les heures et je veux aussi avoir des calculs de jours si le nombre est supérieur à 24h.

Merci d'avance

    //minutes to hour converter
    function ConvertMinutes(num){
      h = Math.floor(num/60);
      m = num%60;
      return(h + "hours"+" :"+" "+m+"minutes").toString();
    }

    var input = 68.68

    console.log(ConvertMinutes(input));
1
Cody 15 avril 2018 à 19:38

4 réponses

Meilleure réponse

Il vous suffit de diviser le num par 1440, soit 24 heures en minutes ... Ensuite, vous avez besoin d'une condition pour afficher les «x jours», lorsqu'il existe une valeur.

Je vous suggère également d'arrondir les minutes ...
;)

//minutes to hour (and days) converter
function ConvertMinutes(num){
  d = Math.floor(num/1440); // 60*24
  h = Math.floor((num-(d*1440))/60);
  m = Math.round(num%60);

  if(d>0){
    return(d + " days, " + h + " hours, "+m+" minutes");
  }else{
    return(h + " hours, "+m+" minutes");
  }
}

var input1 = 68.68
console.log(ConvertMinutes(input1));

var input2 = 4568.68
console.log(ConvertMinutes(input2));
7
Louys Patrice Bessette 15 avril 2018 à 16:55

En remaniant un peu votre code, vous pouvez essayer quelque chose comme ceci:

function ConvertMinutes(num){
    days = Math.floor(num/1440);
    hours = Math.floor((num%1440)/60);
    minutes = (num%1440)%60;
    return {
        days: days,
        hours: hours,
        minutes: minutes
    };
}

var input = 68.68

console.log(ConvertMinutes(input));
0
Christos 15 avril 2018 à 16:46
function secondsToString(hours)
{
var seconds = hours * 60 * 60;

var numdays = Math.floor(seconds / 86400);

var numhours = Math.floor((seconds % 86400) / 3600);

var numminutes = Math.floor(((seconds % 86400) % 3600) / 60);

var numseconds = ((seconds % 86400) % 3600) % 60;

return numdays + " days " + numhours + " hours " + numminutes + " minutes " + numseconds + " seconds";

}
-1
Louys Patrice Bessette 15 avril 2018 à 17:00
//minutes to hour converter
    function ConvertMinutes(num){
      h = Math.floor(num/60);
      d = Math.floor(h/24);
      h = h - d * 24
      m = Math.floor(num%60)
      s = ((input - d*24*60 - h*60 -m)*60).toFixed(2)
      
      return('days: '+ d + ', hours: '+ h + ', minutes: ' +m+', seconds: '+s);
    }

    var input = 4568.68

    console.log(ConvertMinutes(input));
1
DCR 15 avril 2018 à 17:15