Para el cálculo de horas, solo resta la hora final menos la hora inicial y multiplica el resultado por la cantidad de días trabajados. Para los minutos, multiplica la hora final por 60 (1 hora = 60 minutos) y súmale los minutos de dicha hora, luego, haz lo mismo con la hora inicial, resta ambas cantidad (final - inicial) y multiplica el resultado por la cantidad de días trabajados.
Como no puede haber más de 59 minutos en la visualización de la hora, utiliza un bucle mediante el cual irás restando 60 a la cantidad total de minutos hasta que esta sea menor o igual a 59 y por cada resta, suma una hora al total de horas.
Un ejemplo:
Código Javascript
:
Ver originalvar horaInicio = "08:30",
horaFin = "12:50",
cantidadDias = 4,
tiempoIni = horaInicio.split(":"),
tiempoFin = horaFin.split(":"),
horasIni = parseInt(tiempoIni[0]),
minutosIni = parseInt(tiempoIni[1]),
horasFin = parseInt(tiempoFin[0]),
minutosFin = parseInt(tiempoFin[1]),
horas = (horasFin - horasIni) * cantidadDias,
minutos = (
(horasFin * 60 + minutosFin) - (horasIni * 60 + minutosIni)
) * cantidadDias;
while (minutos > 59){
minutos -= 60;
horas++;
}
console.log("El total de tiempo de trabajo es de " + horas + ":" + minutos); //33:20
La aplicación de la función
parseInt
, se debe a que cualquier valor obtenido de una caja de texto, es una cadena, por lo cual, primero debo de darle un formato numérico para poder operar con esas cifras.
Saludos