Días hábiles hasta una fecha sin fines de semana ni festivos
Del viernes 3 al viernes 10 de julio de 2026 quedan 4 días hábiles si el lunes 6 de julio es festivo. Indique la fecha de partida, la fecha objetivo y sus propios cierres y verá los días laborables que faltan. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Fecha de referencia
- 2026-07-03
- Fecha objetivo
- 2026-07-10
- Festivos
- 2026-07-06, 2026-07-06, 2026-07-04
- Días hábiles
- 4
- Días naturales
- 7
- Festivos excluidos
- 1
Esta calculadora mide los días laborables que separan una fecha de referencia explícita de una fecha objetivo también explícita. Omite sábados y domingos, descuenta los festivos laborables que usted indique y nunca depende del día actual ni de la zona horaria del equipo. La fecha de referencia queda excluida y la fecha objetivo se incluye. Si el objetivo es anterior, el resultado es negativo, por lo que sirve tanto para plazos futuros como para hitos ya vencidos.
Fije una referencia y un objetivo
El cálculo excluye la referencia e incluye el objetivo. Si la referencia es un viernes y el objetivo el lunes siguiente, el resultado es un día hábil: el lunes. Dos fechas iguales dan cero.
Esta convención evita volver a contar un día ya terminado y resulta adecuada para cuentas regresivas, controles y archivos históricos. Al ser fechas explícitas, repetir una solicitud antigua ofrece siempre la misma respuesta.
Excluya los cierres que realmente correspondan
Los sábados y domingos nunca cuentan. Use el array opcional holidays para añadir cierres de su empresa, mercado, contrato o proyecto, siempre en formato ISO estricto. La herramienta no descarga calendarios nacionales ni supone una región, porque las reglas cambian según la jurisdicción y la organización.
Usted aporta las fechas observadas exactas. Así puede explicar la diferencia entre el cómputo basado solo en fines de semana y el resultado final. Si existe un día sustitutorio, indique ese día laborable observado.
Obtenga aritmética UTC reproducible
El solucionador opera con enteros del calendario gregoriano: año, mes y día. No crea objetos Date de JavaScript, no consulta el reloj, no lee zonas horarias, no accede a la red y no usa azar. Esto evita errores durante los cambios de hora, cuando un enfoque basado en marcas temporales puede encontrar días de veintitrés o veinticinco horas.
El navegador ejecuta el mismo solucionador puro.
Qué puede hacer con ella
Controlar una fecha de entrega
Mida los días hábiles restantes desde un control del proyecto hasta la entrega contractual con los cierres del equipo.
Reproducir un cálculo de SLA
Guarde fechas y festivos con una incidencia para recalcular el resultado durante una auditoría posterior.
Comprobar un cierre financiero
Cuente días operativos hasta una presentación, liquidación o nómina sin desplazamientos por zona horaria.
Preguntas frecuentes
¿Qué ocurre si el objetivo es anterior?
Su magnitud coincide con la del intervalo invertido.
¿Se cargan automáticamente los festivos?
No. Indique las fechas exactas aplicables a su política para mantener un cálculo explícito y reproducible.
¿Cómo se tratan duplicados y festivos de fin de semana?
Se eliminan duplicados y los festivos de fin de semana no vuelven a restarse.
¿Influyen la zona horaria o el cambio de hora?
No. Se usa aritmética gregoriana pura con semántica UTC, sin consultar el reloj ni la zona local.
¿Se cuenta el día de partida?
No. El día de partida queda fuera y la fecha objetivo sí cuenta, porque la pregunta es cuánto trabajo queda después de un día conocido. De un viernes al lunes siguiente el resultado es 1, y dos fechas iguales dan 0.
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/business-days-until-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"reference_date":"2026-07-03","target_date":"2026-07-10"}'const res = await fetch("https://api.kit.forhosting.com/date/business-days-until-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"reference_date": "2026-07-03",
"target_date": "2026-07-10"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/business-days-until-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"reference_date": "2026-07-03",
"target_date": "2026-07-10"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/business-days-until-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"reference_date":"2026-07-03","target_date":"2026-07-10"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"reference_date":"2026-07-03","target_date":"2026-07-10"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/business-days-until-date", 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
{
"reference_date": "2026-07-03",
"target_date": "2026-07-10"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.business_days_until_date",
"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
Fije una referencia y un objetivo
Indique reference_date y target_date como fechas completas con el formato estricto YYYY-MM-DD. Si el objetivo precede a la referencia, business_days y calendar_days son negativos; al intercambiar los extremos solo cambia el signo. Las entradas no se normalizan: formatos locales, marcas de tiempo, ceros ausentes y fechas imposibles producen invalid_input.
Excluya los cierres que realmente correspondan
Los duplicados se eliminan, un festivo de fin de semana no descuenta dos veces y una fecha fuera del intervalo no afecta al resultado. excluded_holidays muestra únicamente los festivos únicos que retiraron un día laborable.
Obtenga aritmética UTC reproducible
La misma entrada devuelve el mismo JSON en cualquier país. business_days es el resultado principal con signo; calendar_days comprueba la extensión después de la referencia hasta el objetivo; excluded_holidays documenta las exclusiones. Cada cálculo cuenta como un elemento y la solicitud API cuesta $0.002.
Preguntas técnicas
¿Se cuenta la fecha de referencia?
No. El intervalo excluye reference_date e incluye target_date; representa el tiempo laborable posterior al punto de referencia.
¿Cuánto cuesta una solicitud API?
Un cálculo API correcto cuesta $0.002. El mismo solucionador determinista está disponible en el navegador.