Solapamiento horario laboral
Una jornada de 9 a 17 en UTC−5 y otra de 9 a 17 en UTC+0 solo comparten 3 horas, de 14:00 a 17:00 UTC: el 37,5 % de la jornada más corta. Introduzca el desfase y el horario de cada equipo, turnos de noche incluidos. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Desfase A
- -5
- Inicio A
- 9
- End a
- 17
- Desfase B
- 0
- Inicio B
- 9
- End b
- 17
- Etiqueta de desfase A
- UTC−5
- Etiqueta de desfase B
- UTC+0
- Horas del equipo A
- 8
- Horas del equipo B
- 8
Los equipos distribuidos se hacen una pregunta aparentemente simple: si un grupo trabaja de nueve a cinco en Nueva York y otro de nueve a cinco en Londres, ¿qué parte de esas dos jornadas es de verdad concurrente? Una calculadora de porcentaje de solapamiento horario responde con desfases UTC fijos y horas locales de inicio y fin, no con nombres de ciudad ni con una base de horario de verano. Los turnos nocturnos rodean la medianoche. Los desfases quedan entre más y menos catorce horas.
Cómo dos jornadas laborales se convierten en un porcentaje de solape
Una jornada laboral es aquí un intervalo local semiabierto desde la hora de inicio hasta la de fin en un reloj de veinticuatro horas, más un desfase fijo respecto al Tiempo Universal Coordinado. El equipo A en UTC menos cinco que trabaja de nueve a diecisiete ocupa 14:00 a 22:00 UTC. El equipo B en UTC más cero que trabaja de nueve a diecisiete ocupa 09:00 a 17:00 UTC.
Esos dos intervalos comparten 14:00 a 17:00 UTC, es decir tres horas. Cuando el fin es anterior al inicio, la ventana local es un turno de noche y rodea la medianoche antes de la conversión a UTC; una mañana de Tokio y una tarde de San Francisco suelen encontrarse como un tramo de dos horas tras ese envoltorio. Un día civil completo es inicio cero y fin veinticuatro, que cubre todo el círculo UTC y por tanto solapa al otro equipo durante toda su duración.
Un inicio igual al fin se rechaza como jornada de longitud cero en lugar de adivinarse como veinticuatro horas, porque esas dos lecturas son ambiguas en las hojas de cálculo.
Qué puede hacer con ella
Plantilla de soporte con relevo solar
Mida los minutos concurrentes entre dos mesas de soporte para que las herramientas de roster no traten mañanas sin solape como un mismo turno.
Preguntas frecuentes
¿Funcionan los turnos nocturnos y el cruce de medianoche?
Sí. Si el fin es anterior al inicio, la ventana se trata como un turno de noche que rodea la medianoche en hora local y luego se convierte a UTC antes de la intersección. Un día completo es start 0 y end 24.
¿Por qué Nueva York 9–17 y Londres 9–17 solo solapan un 37.5 por ciento?
UTC−5 09:00–17:00 es 14:00–22:00 UTC; UTC+0 09:00–17:00 es 09:00–17:00 UTC.
¿Usa zonas IANA o horario de verano?
No. Usted aporta desfases UTC fijos (horas, incluidos valores fraccionarios como 5.5). Las zonas con nombre y las transiciones DST quedan fuera de alcance para que el resultado sea una identidad pura, sin Date.
¿Cómo se calcula el porcentaje de solapamiento?
Es el tiempo compartido dividido entre la más corta de las dos jornadas, por 100. Dos jornadas de 8 horas que coinciden de 14:00 a 17:00 UTC comparten 3 horas, así que el solapamiento es del 37,5 %. También se muestra la parte de cada equipo.
¿Qué pasa si la jornada de un equipo cae entera dentro de la del otro?
Entonces la cifra principal es del 100 %, porque cada minuto de la jornada más corta es simultáneo. Las cifras por equipo difieren: el turno corto se comparte entero, mientras que la jornada larga puede compartirse solo a medias.
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/biz/work-hours-overlap-percent \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"offset_a":-5,"start_a":9,"end_a":17,"offset_b":0,"start_b":9,"end_b":17}'const res = await fetch("https://api.kit.forhosting.com/biz/work-hours-overlap-percent", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"offset_a": -5,
"start_a": 9,
"end_a": 17,
"offset_b": 0,
"start_b": 9,
"end_b": 17
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/work-hours-overlap-percent",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"offset_a": -5,
"start_a": 9,
"end_a": 17,
"offset_b": 0,
"start_b": 9,
"end_b": 17
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/work-hours-overlap-percent", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"offset_a":-5,"start_a":9,"end_a":17,"offset_b":0,"start_b":9,"end_b":17}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"offset_a":-5,"start_a":9,"end_a":17,"offset_b":0,"start_b":9,"end_b":17}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/work-hours-overlap-percent", 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
{
"offset_a": -5,
"start_a": 9,
"end_a": 17,
"offset_b": 0,
"start_b": 9,
"end_b": 17
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.work_hours_overlap_percent",
"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.
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
Usted envía seis números —desfase, inicio y fin del equipo A y los mismos tres del equipo B— y el resolutor proyecta ambas ventanas sobre un círculo UTC de veinticuatro horas, las interseca y devuelve minutos de solape, horas de solape, la fracción de la jornada de cada equipo que se comparte en vivo y un overlap_percent destacado igual a cien veces la intersección sobre la jornada más corta.
Cómo dos jornadas laborales se convierten en un porcentaje de solape
Ambas jornadas duran ocho horas, así que la más corta es de ocho horas y overlap_percent vale cien veces tres entre ocho, o treinta y siete coma cinco por ciento (37.5). La misma identidad figura en cada respuesta correcta: utc es local menos el desfase, módulo veinticuatro horas; el solape es la intersección de los dos intervalos UTC en un día circular; overlap_percent vale cien veces overlap_minutes dividido por el mínimo de team_a_minutes y team_b_minutes. Los campos por equipo overlap_percent_a y overlap_percent_b usan la duración propia como denominador, de modo que un puesto de cuatro horas enteramente dentro de uno de ocho informa cien por ciento para el equipo corto y cincuenta para el largo, mientras que la cifra destacada permanece en cien porque cada minuto de la jornada más corta es concurrente.
Contrato de entrada, campos de respuesta y reglas de validación
Las horas pueden ser fraccionarias. Envíe por POST un objeto JSON con seis números finitos obligatorios. offset_a y offset_b son desfases UTC fijos en horas, cada uno entre menos catorce y más catorce inclusive; los alias incluyen utc_a, team_a_offset, a_offset y los nombres equivalentes del equipo B. start_a, end_a, start_b y end_b son horas de reloj local de cero a veinticuatro inclusive; los alias incluyen team_a_start, a_start, team_a_end, a_end y los nombres equivalentes de B. Cuando end_a es anterior a start_a, la ventana A rodea la medianoche; la misma regla vale para B. En caso de éxito el cuerpo repite las seis entradas redondeadas y etiquetas de desfase como UTC−5, informa team_a_hours, team_b_hours, team_a_minutes y team_b_minutes, publica cada ventana en UTC como team_a_utc_start, team_a_utc_end, team_b_utc_start y team_b_utc_end con los booleanos team_a_wraps y team_b_wraps, y da overlap_minutes, overlap_hours, overlap_percent, overlap_percent_a, overlap_percent_b, overlap_windows como arreglo de relojes UTC de inicio y fin, same_window cuando los dos intervalos UTC son idénticos, un mensaje de una línea y la cadena formula. Ejemplo: offset_a menos cinco, start_a nueve, end_a diecisiete, offset_b cero, start_b nueve, end_b diecisiete produce tres horas de solape, treinta y siete coma cinco por ciento (37.5) y una sola ventana UTC de 14:00 a 17:00. La validación fallida —campos ausentes, valores no finitos, un desfase cuyo valor absoluto supera catorce, un inicio o un fin fuera de cero a veinticuatro, o una jornada de longitud cero— devuelve invalid_input nombrando el campo y nunca se factura. Las llamadas correctas cuestan el precio base publicado $0.002 con unidad item.
Dónde aporta valor un porcentaje de solapamiento horario
Los equipos de operaciones de personas usan una calculadora de porcentaje de solapamiento horario cuando redactan horas de colaboración conjunta para una empresa partida en dos sedes: si Nueva York y Londres comparten solo tres de ocho horas, una política que exige cuatro horas en vivo no es viable sin alargar un lado. Los desfases inválidos y las jornadas de longitud cero no consumen saldo. Conserve los desfases como los números UTC± ya impresos en billetes y configuraciones de servidor; esta herramienta no resuelve nombres IANA como America/New_York ni aplica transiciones de horario de verano. Si una región cambia de desfase en marzo, envíe el número de invierno o el de verano que realmente desea. Los modelos de plantilla convierten overlap_hours en asientos concurrentes para que un roster de soporte de relevo solar no pretenda que una mañana de Tokio y una mañana de California son el mismo turno. Las organizaciones de ventas y éxito de cliente programan llamadas recurrentes en la intersección publicada como overlap_windows en lugar de adivinar con un reloj mundial. El lenguaje contractual que promete una jornada compartida mínima puede fijar overlap_percent en una prueba en vez de en una captura. Como la implementación es parse de nivel A, cada llamada exitosa cuesta el $0.002 publicado, sin tokens de modelo ni red de salida. Empareje ejemplos al enseñar: desfases y horas idénticos devuelven cien por ciento y same_window true; Nueva York frente a Londres de nueve a cinco devuelve treinta y siete coma cinco por ciento (37.5); Tokio de nueve a dieciocho frente a San Francisco de nueve a dieciocho devuelve un tramo corto consciente del envoltorio; un desfase de quince demuestra la ruta dura de invalid_input. Fije overlap_percent y overlap_minutes en las pruebas y obtendrá aritmética de concurrencia reproducible para manuales, landings SEO y edge workers sin montar una base de husos propia.
Casos de integración
Horas de colaboración conjunta para dos sedes
Convierta el inicio y el fin locales de cada oficina más el desfase UTC en overlap_percent y overlap_windows antes de publicar horas obligatorias de colaboración en vivo.
Huecos de reunión recurrente entre desfases
Coloque las llamadas fijas dentro de la intersección UTC devuelta como overlap_windows en lugar de adivinar a partir de una captura de reloj mundial.
Preguntas técnicas
¿Cómo se calcula el porcentaje de solapamiento horario?
El inicio y el fin locales de cada equipo se desplazan a UTC restando el desfase fijo; después se intersecan los dos intervalos en un círculo de 24 horas. overlap_percent vale 100 × overlap_minutes / min(team_a_minutes, team_b_minutes).
¿Cuánto cuesta la calculadora de solapamiento horario?
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.