Argentina tiene dos tipos de feriados que hacen difícil el cálculo de días hábiles con una lista estática: los feriados que se mueven al lunes o viernes más cercano (Ley 26.110), y los feriados puente — días no laborables que el Poder Ejecutivo decreta durante el año sin fecha predefinida. En 2024 hubo 2 puentes. En 2023 también 2. Ninguno se sabe de antemano cuando se planifica el año.
Dos tipos de feriados en Argentina
1. Feriados nacionales con regla de traslado (Ley 26.110)
La Ley 26.110 establece que ciertos feriados se observan el lunes más cercano:
- Si cae lunes: se queda el lunes
- Si cae martes o miércoles: se traslada al lunes anterior
- Si cae jueves, viernes o sábado: se traslada al lunes siguiente
- Si cae domingo: se traslada al lunes siguiente
Los feriados que aplican esta regla: Día de la Memoria (24 mar), Día del Veterano (2 abr), Día de la Independencia (9 jul), Día de la Diversidad Cultural (12 oct).
2. Feriados puente (“días no laborables”)
Son días no laborables que el Ejecutivo decreta generalmente con pocas semanas de anticipación, para “hacer puente” entre un feriado fijo y un fin de semana. No tienen fecha predefinida — dependen del día en que caigan los feriados del año.
No se pueden hardcodear. Un sistema que solo conoce los feriados publicados en enero es incorrecto en los meses donde se decretan puentes.
El problema con los arrays estáticos
Imaginá que en septiembre de 2025, el gobierno decretó el lunes 27 como feriado puente (para unir el feriado del 26 con el fin de semana). Si tu sistema tiene un array de feriados con las fechas publicadas a principio de año, ese lunes aparece como hábil.
// ❌ PELIGROSO — no incluye puentes
const FERIADOS_AR_2026 = [
"2026-01-01", // Año Nuevo
"2026-03-02", // Carnaval Lunes
"2026-03-03", // Carnaval Martes
// ... feriados fijos
// ← faltan los puentes que se decretan durante el año
];
Validar días hábiles en Argentina con la API
La API mantiene los feriados actualizados a medida que se decretan nuevos puentes:
const API = "https://api.feriados.io/v1";
const KEY = process.env.FERIADOS_API_KEY;
async function isBusinessDayAR(date) {
const res = await fetch(
`${API}/AR/is-business-day?date=${date}`,
{ headers: { "Authorization": `Bearer ${KEY}` } }
);
const { data } = await res.json();
return {
esHabil: data.is_business_day,
diaSemana: data.day_of_week
};
}
// Verificar el lunes 27 si hubiera puente
const { esHabil } = await isBusinessDayAR("2026-03-30");
Calcular fecha de vencimiento considerando puentes
// Agregar N días hábiles a una fecha (requiere plan Starter, Team o Business)
async function addBusinessDaysAR(startDate, days) {
const res = await fetch(
`${API}/AR/business-days/add?date=${startDate}&days=${days}`,
{ headers: { "Authorization": `Bearer ${KEY}` } }
);
const { data } = await res.json();
return data.result_date;
}
// Plazo de 10 días hábiles desde el 24 de marzo (Día de la Memoria)
// El 24/3 es feriado, y puede haber un puente el día anterior o posterior
const vencimiento = await addBusinessDaysAR("2026-03-24", 10);
Obtener todos los feriados del año incluyendo puentes
async function getFeriadosAR(year) {
const res = await fetch(
`${API}/AR/holidays/${year}`,
{ headers: { "Authorization": `Bearer ${KEY}` } }
);
const { data, meta } = await res.json();
return { feriados: data, total: meta.total };
}
const { feriados, total } = await getFeriadosAR(2026);
console.log(`Argentina 2026: ${total} feriados (incluye puentes decretados)`);
// Una vez que el gobierno decrete los puentes, aparecen aquí automáticamente
Contar días hábiles entre dos fechas
import os, requests
API = "https://api.feriados.io/v1"
KEY = os.environ["FERIADOS_API_KEY"]
HDR = {"Authorization": f"Bearer {KEY}"}
def dias_habiles_ar(desde: str, hasta: str) -> int:
r = requests.get(
f"{API}/AR/business-days/between",
params={"from": desde, "to": hasta},
headers=HDR,
)
return r.json()["data"]["business_days"]
# Días hábiles en el primer trimestre 2026
q1 = dias_habiles_ar("2026-01-01", "2026-03-31")
# Carnaval (lun-mar primera semana de marzo), Día de la Memoria (24 mar → lun 23)
print(f"Q1 2026 Argentina: {q1} días hábiles")
Flujo recomendado para producción
Para un sistema que procesa cobros, liquidaciones o entregas en Argentina:
// Patrón: verificar antes de procesar, ajustar si es necesario
async function procesarConFechahabil(fecha, proceso) {
const { esHabil } = await isBusinessDayAR(fecha);
if (esHabil) {
return proceso(fecha);
}
// Ajustar al día hábil anterior
const res = await fetch(
`${API}/AR/business-days/subtract?date=${fecha}&days=1`,
{ headers: { "Authorization": `Bearer ${KEY}` } }
);
const { data } = await res.json();
console.log(`Fecha ${fecha} no hábil. Procesando en ${data.result_date}`);
return proceso(data.result_date);
}
Días hábiles por mes en Argentina 2026 (estimado)
Los valores incluyen los feriados fijos y trasladados confirmados. Los puentes se descuentan a medida que se decretan.
| Mes | Días hábiles base | Feriados fijos |
|---|---|---|
| Enero | 21 | Año Nuevo (1) |
| Febrero | 20 | Sin feriados |
| Marzo | 20 | Carnaval (2-3), Día de la Memoria (23 traslado*) |
| Abril | 19 | Veterano de Malvinas (2**), Viernes Santo (3) |
| Mayo | 20 | Día del Trabajador (1) |
| Junio | 21 | Día de la Bandera (20 → lun 22) |
| Julio | 21 | Independencia (9 → jue) |
| Agosto | 21 | San Martín (17 → lun 17 = coincide) |
| Septiembre | 22 | Sin feriados fijos entre semana |
| Octubre | 21 | Diversidad Cultural (12 → lun 12) |
| Noviembre | 20 | Soberanía (20 → lun 23) |
| Diciembre | 21 | Inmaculada (8 → mar), Navidad (25) |
*24 de marzo 2026 cae miércoles → por Ley 26.110 (martes/miércoles → lunes anterior) → traslada a lunes 23. **2 de abril 2026 cae jueves → inamovible desde 2001 (no se traslada).
Los puentes adicionales se publican durante el año y reducen estas cifras.
¿Necesitas los feriados de Argentina actualizados en tu app? El plan Business incluye notificaciones cuando se decreta un nuevo puente. Empezar gratis →
Ver también: Feriados Argentina 2026 → · Argentina Holiday API → · API de feriados para LATAM → · SLA en días hábiles cross-border →