Calcular Horas De Trabajo

Calculadora de Horas de Trabajo

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"; } }

Leave a Comment