Calcula tu jornada laboral diaria y tu salario neto
Total de horas trabajadas:
Total en formato decimal:
Pago Total Estimado:
¿Cómo calcular tus horas de trabajo correctamente?
Calcular manualmente el tiempo trabajado puede ser confuso, especialmente cuando se deben restar los periodos de descanso no remunerados o cuando la jornada cruza la medianoche. Esta herramienta automatiza el proceso para empleados y freelancers.
La fórmula matemática
Para obtener el total de horas, restamos el tiempo de entrada del tiempo de salida y luego sustraemos el descanso:
Tiempo Total = (Hora de Salida – Hora de Entrada) – Tiempo de Descanso
Ejemplo práctico
Supongamos que entras a trabajar a las 08:30 y sales a las 17:45, con un descanso de 45 minutos para almorzar:
Tiempo bruto: De 08:30 a 17:45 hay 9 horas y 15 minutos.
Conversión a minutos: 9 horas * 60 = 540 min + 15 min = 555 minutos.
Restar descanso: 555 min – 45 min = 510 minutos.
Resultado final: 510 / 60 = 8.5 horas (u 8 horas y 30 minutos).
Importancia de las horas decimales
Para calcular tu sueldo, no puedes multiplicar directamente "8:30" por tu tarifa. Debes convertir los minutos a formato decimal. Por ejemplo, 30 minutos son 0.5 horas, y 45 minutos son 0.75 horas. Nuestra calculadora realiza esta conversión automáticamente para que el cálculo de tu pago sea 100% preciso.
function calculateWorkHours() {
var startTime = document.getElementById("startTime").value;
var endTime = document.getElementById("endTime").value;
var breakMin = parseFloat(document.getElementById("breakMinutes").value) || 0;
var hourlyRate = parseFloat(document.getElementById("hourlyRate").value) || 0;
if (!startTime || !endTime) {
alert("Por favor, introduce las horas de entrada y salida.");
return;
}
// Convert times to minutes from 00:00
var startParts = startTime.split(":");
var endParts = endTime.split(":");
var startTotalMinutes = (parseInt(startParts[0]) * 60) + parseInt(startParts[1]);
var endTotalMinutes = (parseInt(endParts[0]) * 60) + parseInt(endParts[1]);
// Handle night shifts (if end time is before start time)
if (endTotalMinutes < startTotalMinutes) {
endTotalMinutes += 24 * 60;
}
var workedMinutes = endTotalMinutes – startTotalMinutes – breakMin;
if (workedMinutes 0) {
var totalPay = decimalHours * hourlyRate;
document.getElementById("salaryRow").style.display = "flex";
document.getElementById("totalPayText").innerText = totalPay.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });
} else {
document.getElementById("salaryRow").style.display = "none";
}
}