Calcular o total de horas trabalhadas é fundamental para a gestão de tempo, folha de pagamento, e para garantir que os direitos trabalhistas sejam cumpridos. Este cálculo simples envolve subtrair o tempo de início do tempo de fim, e descontar os intervalos para descanso e alimentação.
A Fórmula Básica
A fórmula geral para calcular as horas trabalhadas é:
Horas Trabalhadas = (Hora de Saída - Hora de Entrada) - Duração do Intervalo
Detalhes do Cálculo
Converter para Minutos: A maneira mais precisa de calcular a diferença de tempo é converter ambas as horas (entrada e saída) para minutos totais desde a meia-noite.
Converter de Volta para Horas e Minutos: Divida o total de minutos trabalhados por 60 para obter as horas e o resto da divisão serão os minutos.
Exemplo: 450 minutos / 60 = 7 com resto 30. Isso significa 7 horas e 30 minutos.
Considerações Importantes
Horário de Saída Menor que o de Entrada: Se a hora de saída for no dia seguinte (trabalho noturno), o cálculo precisa levar em conta a virada do dia. Nossa calculadora lida com isso automaticamente.
Intervalos Não Registrados: Certifique-se de registrar corretamente todos os intervalos.
Legislação Local: Verifique a legislação trabalhista aplicável para entender as regras sobre jornada de trabalho, horas extras e intervalos mínimos.
Exemplo Prático
Vamos supor que um funcionário entrou às 08:30, saiu às 17:00 e teve um intervalo de 45 minutos.
Hora de Entrada (minutos): (8 * 60) + 30 = 510 minutos
Hora de Saída (minutos): (17 * 60) + 0 = 1020 minutos
Tempo Total no Local: 1020 – 510 = 510 minutos
Tempo Trabalhado Efetivo: 510 – 45 = 465 minutos
Conversão para Horas: 465 / 60 = 7 com resto 45.
Portanto, o total de horas trabalhadas é 7 horas e 45 minutos.
function calculateWorkHours() {
var entryTimeInput = document.getElementById("entryTime");
var exitTimeInput = document.getElementById("exitTime");
var breakDurationMinutesInput = document.getElementById("breakDurationMinutes");
var resultDiv = document.getElementById("result");
var entryTimeString = entryTimeInput.value;
var exitTimeString = exitTimeInput.value;
var breakDurationMinutes = parseInt(breakDurationMinutesInput.value);
// Clear previous result
resultDiv.innerHTML = "";
resultDiv.style.display = "none";
// Validate inputs
if (!entryTimeString || !exitTimeString) {
alert("Por favor, preencha a hora de entrada e a hora de saída.");
return;
}
var breakDurationMinutesIsValid = !isNaN(breakDurationMinutes) && breakDurationMinutes >= 0;
if (!breakDurationMinutesIsValid) {
alert("Por favor, insira uma duração de intervalo válida (número de minutos).");
return;
}
var entryParts = entryTimeString.split(":");
var exitParts = exitTimeString.split(":");
var entryHour = parseInt(entryParts[0]);
var entryMinute = parseInt(entryParts[1]);
var exitHour = parseInt(exitParts[0]);
var exitMinute = parseInt(exitParts[1]);
// Convert to minutes from midnight
var entryTotalMinutes = entryHour * 60 + entryMinute;
var exitTotalMinutes = exitHour * 60 + exitMinute;
var totalMinutesWorked;
// Handle cases where exit time is on the next day
if (exitTotalMinutes < entryTotalMinutes) {
// Add minutes in a day (24 * 60) to the exit time
exitTotalMinutes += 24 * 60;
}
totalMinutesWorked = exitTotalMinutes – entryTotalMinutes;
// Subtract break duration
totalMinutesWorked -= breakDurationMinutes;
// Ensure total minutes worked is not negative
if (totalMinutesWorked < 0) {
totalMinutesWorked = 0;
}
// Convert total minutes back to HH:MM format
var hours = Math.floor(totalMinutesWorked / 60);
var minutes = totalMinutesWorked % 60;
// Format output string
var resultString = "Horas Trabalhadas: " + hours + "h " + minutes + "m";
resultDiv.innerHTML = "" + resultString + "";
resultDiv.style.display = "block";
}