Calculadora de Días Laborables
Calcula los días laborables dentro de un rango de fechas
Cálculo de Días Laborables
¿Qué es una Calculadora de Días Laborables?
Una calculadora de días laborables cuenta cuántos días de trabajo útiles hay dentro de un rango de fechas después de excluir fines de semana y un número indicado de festivos. Es útil para estimar entregas, revisar vacaciones, calcular nómina, organizar ciclos de facturación, planificar contrataciones y preparar cronogramas de proyectos donde los días calendario son demasiado generales. Un día laborable no equivale siempre a un día natural: fines de semana sábado-domingo o viernes-sábado, festivos regionales, cierres de empresa y días de recuperación pueden cambiar el resultado. La herramienta da una estimación rápida según el patrón de fin de semana y los festivos introducidos. Para RR. HH., contratos o asuntos legales, conviene revisar el calendario oficial.
Cómo usar
Cómo usar
- Introduce la fecha de inicio y la fecha de fin
- Selecciona la opción de exclusión de fines de semana (Sáb-Dom / Vie-Sáb / Ninguno)
- Introduce el número de días festivos (opcional)
- Haz clic en 'Calcular días laborables' para ver los resultados
Supuestos del calendario
- Establece las reglas de fin de semana antes de calcular; los calendarios viernes-sábado, sábado-domingo y sin fines de semana producen totales diferentes.
- Los días festivos y los días de cierre de la empresa deben introducirse por separado si deben excluirse.
Casos de uso
Principio técnico
El conteo de días laborables es el número de días naturales en el rango inclusivo `[inicio, fin]` que no son días de fin de semana ni festivos. La fórmula estándar de inclusión de extremos es `total_días = (fin - inicio) / 86_400_000 + 1` cuando ambos límites se normalizan a medianoche UTC, luego se restan los días de fin de semana y festivos. El día de la semana se obtiene de `Date.prototype.getDay()` que devuelve `0` para domingo hasta `6` para sábado — nótese la trampa de desviación de uno en que `getDay()` no es `getDate()` y que el resultado está en la zona horaria local del navegador, por lo que una cadena de fecha UTC que cruza medianoche puede caer en un día de semana diferente al esperado. El patrón de fin de semana varía por región: el valor global predeterminado es sábado-domingo (Occidente, India, la mayor parte de Asia), pero Oriente Medio históricamente usó jueves-viernes y desde 2024 la mayoría de los países del Golfo (Emiratos Árabes, Bahrein, Kuwait, Qatar) se han alineado en viernes-sábado o incluso sábado-domingo con medio viernes. Irán, Afganistán y partes del sur de Asia aún observan solo viernes; Israel observa viernes-sábado. La herramienta expone Sáb-Dom, Vie-Sáb y "ninguno" como los tres ajustes preestablecidos comunes, y deja que el conteo de festivos cubra todo lo demás por resta. El algoritmo de conteo en sí tiene dos implementaciones prácticas. La iteración ingenua recorre un día a la vez: `for (let d = inicio; d <= fin; d.setDate(d.getDate()+1)) if (![0,6].includes(d.getDay())) count++`. Esto es O(n) en días naturales y trivial de leer. La alternativa de forma cerrada calcula `semanas_completas * 5 + días_laborables_semana_parcial` y se ejecuta en O(1), lo que importa para rangos que abarcan muchos años. Los festivos que caen en fin de semana no deben restarse dos veces, por lo que el patrón canónico es filtrar el conjunto de festivos con `festivos.filter(h => !isFinDeSemana(h)).length`. La política de 调休 (días laborables desplazados) de China añade una complejidad que la lógica pura de patrón de fin de semana no puede representar: el Consejo de Estado publica anualmente una lista que convierte sábados o domingos específicos en días laborables para compensar las vacaciones extendidas del Año Nuevo o el Día Nacional, por lo que para calendarios chinos la lista de festivos debe combinarse con una lista explícita de "días laborables de recuperación" en lugar de depender únicamente de la regla del día de la semana.
- Fórmula de rango inclusivo: `total_días = (fin - inicio) / 86_400_000 + 1` con ambas fechas normalizadas a medianoche UTC para evitar desviación por horario de verano.
- `Date.prototype.getDay()` devuelve 0 (Dom) hasta 6 (Sáb) en la zona horaria local del navegador — no UTC, por lo que el código sensible a la zona horaria debería usar `getUTCDay()`.
- Ajustes preestablecidos de fin de semana: Sáb-Dom (Occidente, India, la mayor parte de Asia), Vie-Sáb (la mayoría de los estados del Golfo desde 2006-2013), solo Vie (Irán), ninguno (operaciones 24/7).
- Forma cerrada O(1): `semanas_completas * 5 + días_laborables_extra_en_semana_parcial`; preferida sobre la iteración día a día para rangos de varios años.
- Los festivos que caen en fin de semana no deben contarse dos veces: restar `festivos.filter(h => !isFinDeSemana(h)).length`, no el conteo bruto de festivos.
- 调休 del Consejo de Estado de China: ciertos sábados/domingos se convierten en días laborables oficiales para compensar vacaciones extendidas; requiere una lista explícita de días de recuperación.
- Los festivos federales de EE.UU. (según 5 U.S.C. § 6103) contribuyen 11 días laborables por año natural: Año Nuevo, MLK, Presidentes, Caídos, Juneteenth, Independencia, Trabajo, Colón, Veteranos, Acción de Gracias, Navidad.
Ejemplos
Días laborables en el año calendario 2026
Fecha de inicio: 2026-01-01
Fecha de fin: 2026-12-31
Fin de semana: sábado y domingo
Festivos: 13 (festivos oficiales de China tras el ajuste 调休)
Días totales: 365
Días de fin de semana: 104
Festivos: 13
Días laborables: 248Capacidad de un sprint de dos semanas
Fecha de inicio: 2026-06-15 (lunes)
Fecha de fin: 2026-06-26 (viernes)
Fin de semana: sábado y domingo
Festivos: 0
Días totales: 12
Días de fin de semana: 2
Días laborables: 10 (sprint completo de dos semanas, 4 devs => 40 días-persona)Equipo de Oriente Medio con fin de semana viernes-sábado
Fecha de inicio: 2026-09-01
Fecha de fin: 2026-09-30
Fin de semana: viernes y sábado
Festivos: 1 (festivo regional)
Días totales: 30
Días de fin de semana: 8 (vie + sáb en septiembre)
Días laborables: 21Ventana de onboarding tras un festivo público
Fecha de inicio: 2026-10-08 (primer día laborable tras la Semana Dorada)
Fecha de fin: 2026-10-30
Fin de semana: sábado y domingo
Festivos: 0
Días totales: 23
Días de fin de semana: 6
Días laborables: 17 (tiempo suficiente para un plan de onboarding de 3 semanas)Planificación del Q1 2027 con festivos federales de EE. UU.
Fecha de inicio: 2027-01-01
Fecha de fin: 2027-03-31
Fin de semana: sábado y domingo
Festivos: 4 (Año Nuevo, Día de MLK, Día de los Presidentes, Viernes Santo)
Días totales: 90
Días de fin de semana: 26
Días laborables: 60Preguntas frecuentes
¿Cómo se cuentan los días laborables?
Por defecto se cuentan de lunes a viernes; sábado y domingo se omiten. Los festivos que indiques en la lista también quedan excluidos. La página muestra el total de días naturales, fines de semana, festivos y los días laborables resultantes.
¿Se aplican los festivos oficiales automáticamente?
No. La calculadora no carga festivos oficiales de forma automática. Debes introducir el número de festivos manualmente. Consulta el calendario oficial de tu país para tener cifras exactas.
¿Gestiona los días de recuperación laboral (调休)?
No. La calculadora solo excluye los fines de semana y los festivos que tú indiques. No gestiona automáticamente el 调休 chino (días laborables desplazados) ni políticas similares. Ajusta manualmente la regla de fin de semana o el conteo de festivos si tu calendario incluye recuperaciones.
¿Puedo excluir solo los fines de semana, no los festivos?
Sí. Desactiva la lista de festivos y el cálculo solo excluirá sábados y domingos. También puedes personalizar qué días forman el fin de semana: algunos calendarios de Oriente Medio tienen como fin de semana viernes y sábado.
¿Cuál es la diferencia con la herramienta de Diferencia de fechas?
Diferencia de fechas devuelve días naturales. Esta herramienta devuelve días laborables, omitiendo fines de semana y festivos. Úsala para plazos de proyectos, fechas contractuales y ventanas de SLA; usa Diferencia de fechas para el tiempo transcurrido bruto.
¿Funciona con fechas pasadas?
Sí. Calcula los días laborables entre dos fechas cualesquiera, pasadas o futuras. Introduce la fecha de inicio y fin, selecciona la regla de fin de semana e indica un número de festivos: la página calcula los días laborables totales en ese rango.
¿Se suben mis datos?
No. El cálculo se ejecuta en tu navegador. Las fechas y los conteos de festivos no se guardan ni se transmiten.