Días laborables entre fechas sin fines de semana ni festivos
Del 1 al 10 de julio de 2026 hay 7 días laborables después de quitar el fin de semana y el festivo del día 3. Cuente los días de lunes a viernes entre dos fechas, ambas incluidas, y descuente sus propios cierres. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Inicio
- 2026-07-01
- End
- 2026-07-10
- Festivos
- 2026-07-03, 2026-07-04, 2026-07-03
- Días laborables netos
- 7
- Días naturales
- 10
- Festivos excluidos
- 1
Esta calculadora cuenta de lunes a viernes entre dos fechas de calendario ISO explícitas y descuenta los festivos laborables que usted indique. Incluye ambos extremos, por lo que sirve para plazos auditables, niveles de servicio, periodos de facturación e informes de personal. Si invierte las fechas, el resultado pasa a ser negativo sin alterar su magnitud. El cálculo usa aritmética gregoriana pura, no el reloj ni la zona horaria local, y produce siempre el mismo resultado.
Defina con precisión el intervalo y su sentido
Envíe start y end como fechas reales con el formato estricto YYYY-MM-DD. El intervalo incluye ambos extremos: si usa el mismo lunes como inicio y final, obtiene un día laborable. De viernes a lunes se cuentan el viernes y el lunes, pero no el sábado ni el domingo.
El orden de las entradas determina el sentido. Si start es anterior o igual a end, el resultado es positivo o cero. Si start es posterior, la calculadora evalúa el mismo intervalo inclusivo y cambia el signo de ambos recuentos.
Por tanto, intercambiar las fechas solo invierte el signo. Se admiten los años 0001 a 9999 del calendario gregoriano proléptico.
Excluya fines de semana y festivos explícitos sin ambigüedad
Cada día de lunes a viernes del intervalo empieza como laborable; los sábados y domingos se excluyen automáticamente. El array opcional holidays permite retirar cierres propios de su organización sin depender de una base nacional que podría cambiar o seleccionar una región incorrecta. Cada festivo debe tener el mismo formato ISO estricto.
Una fecha fuera del intervalo no afecta al cálculo y un festivo de fin de semana tampoco resta otra vez. Las entradas repetidas se deduplican. Así puede explicar la diferencia respecto de un cálculo que solo excluye fines de semana.
Indique las fechas observadas exactas de su organización, incluidos los días sustitutorios, porque la herramienta no infiere calendarios legales, celebraciones regionales ni cierres empresariales.
Use resultados deterministas en sistemas operativos
La implementación trabaja con enteros para año, mes y día del calendario gregoriano. Nunca llama al constructor Date de JavaScript, consulta el reloj del sistema, pide una zona horaria, accede a la red ni usa azar. Una solicitud ejecutada en cualquier país, navegador o nodo perimetral devuelve el mismo objeto.
Esta estabilidad evita errores durante cambios de horario estacional, cuando un enfoque basado en marcas de tiempo puede crear días de veintitrés o veinticinco horas. También permite reproducir resultados históricos únicamente con las entradas guardadas. En procesos recurrentes, conserve la lista de festivos junto a la versión de la política que la originó y almacene las entradas con el resultado.
La ejecución gratuita en el navegador usa el mismo solucionador puro y permite comprobar ejemplos antes de automatizarlos.
Qué puede hacer con ella
Medir la duración de un SLA
Cuente los días laborables entre la apertura y resolución de una incidencia, descontando los cierres de su equipo.
Auditar desviaciones de entrega
Compare dos hitos con un valor que conserva el sentido y cambia de signo al invertir las fechas.
Calcular periodos financieros
Cuente los días hábiles de una factura o liquidación e indique los festivos bancarios aplicables.
Preguntas frecuentes
¿Se incluyen las fechas inicial y final?
Sí. Ambos extremos pertenecen al intervalo y cuentan si son laborables y no figuran como festivos.
¿Por qué puede ser negativo el resultado?
Si start es posterior a end, se niega el recuento inclusivo. Al intercambiar las fechas se mantiene la magnitud y cambia el signo.
¿Carga automáticamente los festivos de un país?
No. Indique las fechas exactas que desea excluir para evitar supuestos regionales ocultos y conservar la reproducibilidad.
¿Influyen la zona horaria o el horario de verano?
No. El solucionador aplica aritmética gregoriana pura con semántica UTC y no consulta la zona local ni el reloj.
¿Qué pasa si un festivo cae en fin de semana o lo anoto dos veces?
No cambia nada. El sábado y el domingo ya quedan fuera, y un festivo repetido se descuenta una sola vez: en el ejemplo de julio de 2026, el día 4 y el día 3 duplicado restan un único día.
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/date/net-workdays-between \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2026-07-01","end":"2026-07-10"}'const res = await fetch("https://api.kit.forhosting.com/date/net-workdays-between", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2026-07-01",
"end": "2026-07-10"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/net-workdays-between",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2026-07-01",
"end": "2026-07-10"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/net-workdays-between", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2026-07-01","end":"2026-07-10"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2026-07-01","end":"2026-07-10"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/net-workdays-between", 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": "2026-07-01",
"end": "2026-07-10"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.net_workdays_between",
"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_holidays | 10000 |
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
Defina con precisión el intervalo y su sentido
Esta convención también aparece en calendar_days, con signo, y facilita la auditoría de integraciones. Las fechas se validan, no se normalizan: el 30 de febrero, el mes 13, la falta de ceros, las marcas de tiempo y los formatos locales producen invalid_input.
Excluya fines de semana y festivos explícitos sin ambigüedad
La respuesta incluye excluded_holidays, que cuenta únicamente los festivos únicos que eliminaron un día de lunes a viernes dentro del intervalo. Al invertir las fechas, las exclusiones son simétricas: este indicador permanece sin signo y net_workdays expresa el sentido.
Use resultados deterministas en sistemas operativos
Use net_workdays para diferencias con signo, calendar_days para comprobar rápidamente la extensión inclusiva y excluded_holidays para trazabilidad. El precio de la API es $0.002 por solicitud y cada intervalo completo cuenta como un elemento.
Preguntas técnicas
¿Cómo se tratan los festivos repetidos o de fin de semana?
Se eliminan duplicados y los festivos de fin de semana no vuelven a restar. excluded_holidays solo refleja festivos laborables únicos del intervalo.
¿Cuánto cuesta una solicitud API?
Una solicitud API correcta cuesta $0.002. El mismo cálculo determinista también se ejecuta gratis en el navegador.