Estoy escribiendo código javascript desde cero que debería agregar tiempo a la hora actual. He declarado tres variables: h - horas, min - minutos, truk - duración (minutos).
let h = +prompt("Enter current hour: "); let min = +prompt("Enter current minutes: "); let truk = +prompt("Enter duration (minutes): "); let min1 = truk % 60; // We get minutes from duration let h1 = Math.trunc(truk / 60); // We get hours from duration console.log("You have entered: " + "h = " + h + ", " + "min = " + min + ", " + "truk = " + truk); console.log("Result: " + (h + h1) + " : " + (min + min1)); // Don't know how to proceed further with this.Por ejemplo si ingresamos horas 17 y minutos 35 y duración 20 debe imprimir 17:55
let h = +prompt("Enter current hour: "); let min = +prompt("Enter current minutes: "); let truk = +prompt("Enter duration (minutes): "); let min1 = truk % 60; // We get minutes from duration let h1 = Math.trunc(truk / 60); // We get hours from duration console.log("You have entered: " + "h = " + h + ", " + "min = " + min + ", " + "truk = " + truk); //without if var result1 = new Date(2021, 0, 1, h, min, 00, 000); //set time according to user inputs result1.setMinutes(result1.getMinutes() + truk); //add minutes to set time console.log("Result: " + (result1.getHours()) + " : " + (result1.getMinutes()));debe verificar si los minutos superan los 60. En caso afirmativo, agregue una hora a las horas existentes. Se debe aplicar la misma lógica si las horas van más allá de las 24. Pruebe esto:
let h = +prompt("Enter current hour: "); let min = +prompt("Enter current minutes: "); let truk = +prompt("Enter duration (minutes): "); let min1 = truk % 60; // We get minutes from duration let h1 = Math.trunc(truk / 60); // We get hours from duration console.log("You have entered: " + "h = " + h + ", " + "min = " + min + ", " + "truk = " + truk); let min_final = 0 let hr_final = h if((min + min1) > 60){ min_final = (min + min1) - 60 hr_final = hr_final + 1 } hr_final = hr_final + h1 if(hr_final >= 24){ hr_final = 24 - hr_final } if(hr_final < 10){ hr_final = "0" + hr_final } console.log("Result: " + (hr_final) + " : " + (min_final));Estás en el camino correcto, pero debes considerar algunos factores adicionales:
% nuevamente para asegurarse de que los valores que devuelva sean base-24 (para horas) y base-60 (para minutos).10 a las 17:55 debe devolver 18:05 , no 17:05 ).10 : un poco de manipulación de cadenas con String.substr() puede ser muy útil en este escenario. let h = +prompt("Enter current hour: "); let min = +prompt("Enter current minutes: "); let truk = +prompt("Enter duration (minutes): "); let newMin = ('0' + (min + (truk % 60)) % 60).substr(-2); let newH = (h + Math.trunc((truk + min) / 60) + Math.trunc(truk / 60)) % 24; console.log("You have entered: " + "h = " + h + ", " + "min = " + min + ", " + "truk = " + truk); console.log("Result: " + newH + " : " + newMin);