Días hábiles de proyecto
Del lunes 6 al viernes 10 de julio de 2026 un proyecto tiene 5 días hábiles, y si marca el 8 de julio como festivo quedan 4. Indique inicio, fin y cierres y obtendrá el total de días laborables. 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-06
- End
- 2026-07-10
- Días hábiles
- 5
- Días naturales
- 5
- Días de fin de semana
- 0
- Feriados excluidos
- 0
Los calendarios de proyecto casi nunca se miden en días de calendario en bruto. Cuando un pliego promete treinta días laborables desde el arranque, o un cliente pregunta cuántos días facturables hay entre dos hitos, los fines de semana y los festivos distorsionan en silencio cualquier resta ingenua de dos fechas ISO. Esta calculadora de días hábiles de proyecto acepta una fecha de inicio, una fecha de fin y una lista opcional de festivos, y devuelve el conteo inclusivo de lunes a viernes que queda tras quitar esos festivos.
Qué significa un día hábil de proyecto en esta calculadora
Un día hábil de proyecto es cualquier día del calendario gregoriano que cae en lunes, martes, miércoles, jueves o viernes y no figura en el array opcional de holidays. El intervalo es inclusivo: si la fecha de inicio es un día laborable y no es festivo, cuenta como el día uno de la ventana del proyecto; si la fecha de fin también es laborable, cuenta igualmente. Los sábados y domingos nunca cuentan, aunque queden dentro de un encargo de varios meses.
Los festivos que caen en fin de semana no modifican el total, porque esos días ya se excluyeron como fin de semana; solo los festivos en día laborable reducen el total de días hábiles, y esas fechas aparecen en la lista holidays de la respuesta para que la auditoría vea exactamente qué días laborables no laborables se aplicaron.
Dónde aporta valor el conteo de días hábiles de proyecto
Los equipos de entrega usan una calculadora de días hábiles de proyecto al traducir duraciones contractuales en días laborables a fechas de calendario, o al medir cuántos días facturables han transcurrido entre el arranque y una revisión de estado. Los responsables de producto que planifican sprints necesitan conteos inclusivos de días laborables que ignoren los festivos de empresa listados una vez por región.
Finanzas y operaciones de servicios profesionales concilian hojas de horas con el máximo teórico de días laborables de un periodo de facturación sin abrir una hoja de cálculo de escritorio por cada cliente.
Qué puede hacer con ella
Ventanas de días laborables en contratos y SOW
Mida días hábiles inclusivos entre el arranque del proyecto y el fin contractual, restando fines de semana y la lista de festivos del pliego.
Capacidad de sprint y periodo de facturación
Calcule la capacidad máxima de días laborables de un sprint o periodo mensual para que planificación y finanzas compartan el mismo total.
Tiempo transcurrido en SLA e hitos
Informe cuántos días laborables han pasado entre dos hitos en reportes de estado, sin contar sábados, domingos ni cierres listados.
Preguntas frecuentes
¿Cómo cuento los días hábiles de proyecto entre dos fechas?
Envíe start y end como YYYY-MM-DD. Opcionalmente pase holidays como array del mismo formato.
¿Qué ocurre si un festivo cae en fin de semana?
Los festivos de fin de semana no cambian el total.
¿Se cuentan el día de inicio y el día de fin?
Sí. El periodo es inclusivo: el primer y el último día cuentan como hábiles siempre que caigan de lunes a viernes y no figuren en su lista de festivos.
¿Qué pasa si pongo la fecha de fin antes que la de inicio?
La calculadora rechaza el par en lugar de intercambiar las fechas. Un proyecto que termina antes de empezar casi siempre es un error de escritura, y conviene verlo antes que recibir un resultado engañoso.
¿Qué ocurre si escribo el mismo festivo dos veces?
Los repetidos se ignoran, así que un festivo anotado dos veces solo descuenta un día. El resultado también enumera los festivos laborables que se descontaron, para que cualquiera pueda revisarlos.
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-project \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2026-07-06","end":"2026-07-31"}'const res = await fetch("https://api.kit.forhosting.com/date/business-days-project", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2026-07-06",
"end": "2026-07-31"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/business-days-project",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2026-07-06",
"end": "2026-07-31"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/business-days-project", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2026-07-06","end":"2026-07-31"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2026-07-06","end":"2026-07-31"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/business-days-project", 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-06",
"end": "2026-07-31"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.business_days_project",
"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
La validación fallida no se factura; las llamadas correctas usan el precio base publicado $0.002 sin tokens de modelo ni red saliente.
Qué significa un día hábil de proyecto en esta calculadora
El algoritmo recorre cada día civil desde el inicio hasta el fin con aritmética pura: los números de serie siguen Howard Hinnant days_from_civil, los días de la semana el método Sakamoto y los años bisiestos la regla gregoriana de que los siglos solo son bisiestos si son divisibles por cuatrocientos. No se construye ningún objeto JavaScript Date, así que la respuesta es idéntica en cada región Worker y en pruebas sin conexión.
Contrato de entrada, campos de respuesta y errores
Cada fecha se valida como día gregoriano real, incluido el 29 de febrero solo en años bisiestos, de modo que 2023-02-29 se rechaza y 2024-02-29 se acepta. Ejemplo: start 2026-07-06 (lunes) y end 2026-07-10 (viernes) sin festivos da cinco días hábiles, cinco días de calendario y cero fines de semana. La misma semana con holidays que contenga 2026-07-08 da cuatro días hábiles y una entrada en holidays. Envíe un cuerpo JSON con start y end como cadenas de calendario ISO-8601 obligatorias en forma YYYY-MM-DD. holidays es un array opcional de las mismas cadenas; omítalo o pase un array vacío cuando el proyecto no tenga cierres fuera del fin de semana. Se aceptan alias por comodidad: from, begin y project_start se asignan a start; to, finish y project_end a end. start debe ser anterior o igual a end; un par invertido falla con invalid_input en lugar de intercambiar límites en silencio, porque una ventana de proyecto invertida suele ser un error de datos que conviene mostrar. En éxito el cuerpo devuelve las cadenas normalizadas start y end, business_days como conteo inclusivo de días laborables, calendar_days como el tramo inclusivo de todos los días, weekend_days como el número de sábados y domingos del tramo, holidays_excluded como los festivos en día laborable que redujeron el total, holidays como la lista ordenada de esos festivos dentro del intervalo, y una cadena formula breve con la regla. Fechas inválidas o ausentes, un valor holidays que no sea array, o un start posterior a end provocan invalid_input y no se facturan.
Dónde aporta valor el conteo de días hábiles de proyecto
Como la implementación es pure parse de nivel A, cada llamada correcta cuesta el precio base publicado $0.002 sin tokens de modelo lingüístico ni dependencia de una API de festivos: usted aporta la lista de festivos de su jurisdicción o calendario de empresa. Mantenga las peticiones pequeñas, fije business_days en las pruebas de integración y obtendrá ventanas de proyecto reproducibles para herramientas Gantt, motores de SLA, vistas previas de factura y workers de borde sin montar un servicio de calendario completo propio.
Preguntas técnicas
¿Se incluyen las fechas de inicio y fin?
Sí. Ambos extremos son inclusivos: si start o end es día laborable y no es un festivo listado, suma uno a business_days.
¿Puede start ser posterior a end?
No. La tarea falla con invalid_input cuando start es posterior a end, para no intercambiar en silencio ventanas de proyecto invertidas.
¿Cuánto cuesta la calculadora de días hábiles de proyecto?
La herramienta del navegador es gratuita. Las peticiones API usan saldo KIT prepago a $0.002 por llamada correcta; la entrada inválida no se factura.