Calculadora de horas
Si entra a las 09:00, sale a las 17:30 y come 30 minutos, trabajó exactamente 8 horas. Escriba la hora de inicio, la de fin y la pausa no pagada de un día, y obtenga las horas decimales para su hoja de horas. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Hora de inicio
- 09:00
- Hora de finalización
- 17:30
- Minutos de descanso
- 30
- Hora de inicio
- 09:00:00
- Hora de finalización
- 17:30:00
- Minutos transcurridos
- 510
- Horas transcurridas
- 8,5
Saber cuántas horas ha trabajado de verdad es una tarea de nómina y de parte de horas, no un acertijo de calendario. Se registra la entrada a una hora de inicio, la salida a una hora de fin, se restan los minutos de almuerzo u otra pausa no pagada y el resto se convierte en horas decimales para un parte, una factura o una línea salarial. Esta calculadora de horas hace precisamente eso: lee un reloj de inicio y un reloj de fin del mismo día civil, resta minutos de pausa no negativos y devuelve la duración neta en horas. No es una herramienta de diferencia de fechas, ni un estimador de horas extra, ni un sumador de horas sobre una cara de reloj.
Qué significan de verdad las horas trabajadas entre dos relojes
Las horas trabajadas en un solo día son el tiempo de reloj transcurrido menos las pausas no pagadas, expresado como un recuento decimal de horas. Convierta el reloj de inicio y el de fin a minutos después de medianoche, reste esos totales, reste los minutos de pausa y divida entre sesenta. De las nueve a las diecisiete treinta hay quinientos diez minutos transcurridos; un almuerzo de treinta minutos deja cuatrocientos ochenta minutos, que son exactamente ocho horas.
Ese ocho es lo que guarda una celda de parte de horas, una línea de factura y la mayoría de los sistemas de nómina. La misma identidad es lo que se busca al pedir una calculadora de horas: no una conversión entre semanas y segundos, no sumar cinco horas a una cara de reloj y no el hueco con signo entre dos fechas y horas ISO de distintos días civiles.
Este extremo rechaza un reloj de fin que precede al de inicio en lugar de inventar un cruce nocturno, porque la intención de búsqueda es un par de fichajes del mismo día. Los turnos que cruzan medianoche pertenecen a una herramienta de cuadrante que también conoce la fecha civil siguiente. Se rechazan los minutos de pausa negativos porque una pausa no puede añadir tiempo al turno.
También se rechazan las pausas más largas que el intervalo fichado, de modo que el resultado nunca es una duración negativa.
Dónde resulta útil una calculadora de horas trabajadas
El personal por horas y los contratistas convierten un par de fichajes en papel en las horas decimales que espera una exportación de nómina, una vez quitado el almuerzo, sin abrir una hoja de cálculo. Quienes facturan por proyecto convierten un bloque de estudio en horas facturables para una línea de factura que debe coincidir con el parte que el cliente ya firmó. Quienes dirigen turnos comprueban que un inicio y un fin previstos menos un descanso obligado sigan igualando la jornada contratada antes de publicar el cuadrante.
Los docentes y los sitios de preparación de exámenes necesitan un oráculo determinista que marque 09:00 a 17:30 menos treinta minutos como ocho horas, no como ocho y media, y que falle un par invertido en lugar de envolver en silencio más allá de medianoche. Combine esta calculadora con una herramienta de horas extra cuando ya conozca las horas adicionales y la tarifa, y con un conversor de salario cuando necesite la paga anual a partir de un jornal por hora.
Qué puede hacer con ella
Pares de fichaje para parte de horas y nómina
Convierta una entrada, una salida y un almuerzo del mismo día en horas decimales que una exportación de nómina o una línea salarial pueda guardar sin una hoja de cálculo.
Facturas independientes y bloques de estudio
Pase un inicio y un fin reservados menos una pausa no pagada a horas facturables que coincidan con el parte que el cliente ya firmó.
Preguntas frecuentes
¿Qué ocurre si la hora de fin es anterior a la de inicio?
Esta calculadora es un par de fichajes del mismo día: un fin que precede al inicio no se trata como un cruce nocturno.
¿Los minutos de pausa pueden ser cero, omitirse o ser una fracción?
Se admiten minutos fraccionarios. Se rechazan las pausas negativas y las más largas que el fichaje transcurrido.
¿Qué formatos de reloj acepta la calculadora de horas?
HH:MM o HH:MM:SS de veinticuatro horas de 00:00 a 23:59, y relojes de doce horas con AM o PM.
¿Cómo se pasan los minutos a horas decimales?
Los minutos netos se dividen entre sesenta. De 08:15 a 16:45 con 45 minutos de pausa trabajó 7,75 horas, porque esos 45 minutos valen tres cuartos de hora, no 45 centésimas.
¿Calcula también el pago de horas extra?
No. Solo devuelve las horas trabajadas después de las pausas. Si ya conoce las horas extra y la tarifa, use una calculadora de horas extra, y un conversor de salario si necesita el sueldo anual a partir de la tarifa por hora.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/life/hours \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_time":"09:00","end_time":"17:30"}'const res = await fetch("https://api.kit.forhosting.com/life/hours", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_time": "09:00",
"end_time": "17:30"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/hours",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_time": "09:00",
"end_time": "17:30"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/hours", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_time":"09:00","end_time":"17:30"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_time":"09:00","end_time":"17:30"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/hours", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"start_time": "09:00",
"end_time": "17:30"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.hours",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_break_minutes | 100000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Si el reloj de fin precede al de inicio, o si los minutos de pausa son negativos, la tarea falla con invalid_input y no se factura. Las llamadas API correctas usan el precio base publicado $0.002.
Contrato de entrada, forma de la respuesta y errores
Ejemplo: 08:15 a 16:45 menos 45 minutos produce hours 7.75. Relojes ausentes, una cara como 25:00 o 9:70, un fin que precede al inicio, una pausa negativa o una pausa más larga que el fichaje son fallos tipados y no se facturan. Envíe un cuerpo JSON con dos cadenas de reloj obligatorias y una pausa opcional. start_time es la cara de entrada: HH:MM o HH:MM:SS de veinticuatro horas de 00:00 a 23:59, o un reloj de doce horas con AM o PM como 9:00 AM. Se aceptan los alias start, from y clock_in para que hojas de cálculo y formularios tipados reutilicen el mismo contrato. end_time es la cara de salida en los mismos formatos; se aceptan los alias end, to y clock_out. break_minutes es un número finito no negativo de minutos no pagados a restar; omítalo o envíe 0 para un bloque continuo. Se aceptan los alias breaks, break y lunch. Enteros, decimales, notación científica y cadenas numéricas se interpretan para la pausa; booleanos, arrays, objetos, Infinity y NaN fallan con invalid_input nombrando break_minutes. En caso de éxito el cuerpo repite start_time y end_time normalizados a veinticuatro horas, el break_minutes analizado, elapsed_minutes y elapsed_hours antes de la pausa, los minutos netos, el valor principal hours, los segundos netos, hours_hms como HH:MM:SS y una cadena de fórmula breve. Ejemplo: start_time 09:00, end_time 17:30, break_minutes 30 produce hours 8 y hours_hms 08:00:00.
Dónde resulta útil una calculadora de horas trabajadas
En esta página el trabajo corre por completo en su navegador; a través de la API cada fichaje correcto cuesta $0.002, la validación fallida no se cobra y no se guarda nada después de devolver la respuesta.
Casos de integración
Comprobaciones de cuadrante y claves de examen
Afirme que un turno previsto menos el descanso iguala la jornada contratada y fije valores golden de hours en fixtures que no deben depender del reloj de la máquina.
Preguntas técnicas
¿Cómo se calculan las horas trabajadas entre dos horas?
Envíe start_time y end_time como cadenas de reloj (09:00, 17:30:00 o 5:30 PM) y, si procede, break_minutes. La API devuelve hours como duración decimal después de restar la pausa no pagada.
¿Cuánto cuesta la calculadora de horas?
La herramienta del navegador es gratuita. Las peticiones API usan saldo prepago de KIT a $0.002 por llamada correcta; la entrada inválida no se factura.