Enésimo día de la semana del mes
El tercer lunes de marzo de 2024 es el día 18 y el último viernes de febrero de 2024 es el 23. Elija año, mes, día de la semana y del primero al quinto o el último para fechar festivos móviles o reuniones mensuales. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Año
- 2 024
- Mes
- 3
- Día de la semana objetivo
- monday
- Orden de aparición
- 3
- Índice del día de la semana
- 1
- Índice ordinal
- 3
- Día
- 18
- Fecha
- 2024-03-18
Calendarios de reuniones, nóminas, festivos y eventos sociales recurrentes se definen a menudo como el segundo martes o el último viernes de un mes concreto, en lugar de un número de día fijo. Traducir esa regla humana a una fecha gregoriana concreta exige saber qué días de la semana caen dentro del mes, cómo los años bisiestos alargan febrero y si una quinta aparición cabe realmente antes de que el mes termine. Esta calculadora acepta un año, un mes del uno al doce, un nombre de día de la semana o su índice en base cero, y un ordinal del primero al quinto o el último, y devuelve la fecha ISO civil de esa aparición. Cuando la posición solicitada no existe —por ejemplo, un quinto lunes en un mes que solo contiene cuatro lunes—, la solicitud falla con un claro error de validación en lugar de inventar una fecha en el mes siguiente.
Cómo se resuelve el enésimo día de la semana de un mes sin reloj
Parta de cuatro piezas de intención: un año gregoriano en el rango práctico del uno al nueve mil novecientos noventa y nueve, un mes numerado del uno para enero al doce para diciembre, un día de la semana objetivo y un ordinal que significa primero, segundo, tercero, cuarto, quinto o último. Confirme las reglas de bisiestos de febrero con la prueba gregoriana estándar: un año es bisiesto cuando es divisible por cuatro, salvo que los años de siglo solo lo son cuando también son divisibles por cuatrocientos.
Eso decide si febrero tiene veintiocho o veintinueve días y, por tanto, cuántos días de cada tipo pueden aparecer. A partir de ese día de la semana del primero del mes, el número de día de la primera coincidencia es uno más la distancia modular hasta el objetivo. Cada aparición posterior llega siete días civiles después.
El número de apariciones es cuántas veces puede sumar siete sin salirse de la longitud del mes. Para un ordinal numérico n, el día es la primera aparición más n menos uno por siete, y la solicitud se rechaza cuando n supera el recuento. Para last, n se fija en el recuento completo y se devuelve el último día coincidente del mes.
Formatee el resultado como una cadena ISO de formato cuatro-dos-dos.
Dónde aparecen los calendarios de enésimo día en el trabajo real
Los festivos de estilo estadounidense como Acción de Gracias (cuarto jueves de noviembre) y el Día del Trabajo (primer lunes de septiembre) se definen por ordinales de día de la semana y no por números fijos, así que los calendarios de nóminas y escolares deben resolverlos cada año. Las reuniones generales de empresa suelen caer el segundo martes de cada mes, y los trenes de lanzamiento pueden salir el último viernes.
Los sistemas bancarios y de liquidación codifican cortes recurrentes como reglas de día de la semana dentro del mes que deben mantenerse estables entre años bisiestos y cambios de siglo. Los ingenieros de datos materializan tablas de dimensiones de festivos y reuniones para analítica sin arrastrar una librería iCalendar completa a una ruta de funciones puras.
Si más adelante necesita sumar un número arbitrario de días civiles a una fecha, calcular ordinales de día del año, averiguar en qué trimestre cae una fecha o invertir el problema y preguntar qué aparición es una fecha dada, trátelos como intenciones de búsqueda y landings separados en lugar de sobrecargar esta página de enésimo día de la semana del mes.
Qué puede hacer con ella
Festivos definidos por ordinales de día de la semana
Resuelva Acción de Gracias, el Día del Trabajo, el Día de los Caídos y reglas similares en fechas ISO concretas para cualquier año sin tablas fijas en el código.
Reuniones recurrentes y cadencias de lanzamiento
Convierta políticas como «segundo martes» o «último viernes del mes» en fechas de calendario para invitaciones, congelamientos de CI e informes de estado.
Cortes de nóminas y liquidaciones
Materialice cortes de día de la semana dentro del mes para pipelines financieros con matemática gregoriana segura en bisiestos y errores claros cuando falta una quinta aparición.
Preguntas frecuentes
¿Qué significa el enésimo día de la semana del mes?
Es la fecha del primer, segundo, tercer, cuarto, quinto o último día de la semana indicado dentro de un mes de calendario dado; por ejemplo, el tercer lunes de marzo de 2024 es 2024-03-18.
¿Qué ocurre si la quinta aparición no existe?
El error indica cuántas apariciones de ese día tiene realmente el mes.
¿Cómo pido el último viernes de un mes?
La fecha de la respuesta es el último viernes que aún cae dentro de ese mes.
¿Gestiona los años bisiestos?
Sí. Se aplican las reglas gregorianas de bisiestos, así que febrero puede tener veintinueve días y contener cinco apariciones de algunos días.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta localmente.
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/nth-weekday-of-month \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"year":2024,"month":3,"weekday":"monday","ordinal":"3"}'const res = await fetch("https://api.kit.forhosting.com/date/nth-weekday-of-month", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"year": 2024,
"month": 3,
"weekday": "monday",
"ordinal": "3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/nth-weekday-of-month",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"year": 2024,
"month": 3,
"weekday": "monday",
"ordinal": "3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/nth-weekday-of-month", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"year":2024,"month":3,"weekday":"monday","ordinal":"3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"year":2024,"month":3,"weekday":"monday","ordinal":"3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/nth-weekday-of-month", 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
{
"year": 2024,
"month": 3,
"weekday": "monday",
"ordinal": "3"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.nth_weekday_of_month",
"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
Qué envía y qué recibe
Comprobaciones clásicas: el tercer lunes de marzo de dos mil veinticuatro cae el dieciocho, el último viernes de febrero de dos mil veinticuatro cae el veintitrés, y el quinto jueves de febrero de dos mil veinticuatro cae el veintinueve porque ese febrero bisiesto tiene cinco jueves. Envíe cuatro campos obligatorios: year como entero finito, month como entero del uno al doce, weekday como nombre inglés como monday o como entero de cero a seis con el domingo igual a cero, y ordinal del uno al cinco, las palabras first a fifth, o la cadena last (también aceptada como menos uno). Campos ausentes, años o meses no enteros, tokens de día desconocidos, ordinales fuera del rango uno a cinco que no sean last, y solicitudes de una aparición que no existe en ese mes fallan con invalid_input y no se cobran. En caso de éxito, la respuesta devuelve year, month, el nombre normalizado del día y weekday_index, el ordinal como número o la cadena last, ordinal_index como el número de aparición resuelto en base uno, day del mes, la cadena de fecha ISO, occurrence_count con cuántas veces aparece ese día en el mes, is_leap_year para el año, days_in_month y una breve cadena formula que documenta las reglas de bisiestos y de Sakamoto. El precio de las llamadas API exitosas es el base publicado de $0.002 por elemento; los fallos de validación no consumen saldo prepagado.
Dónde aparecen los calendarios de enésimo día en el trabajo real
Al ser esta capacidad un motor parse puro, el precio de la API es el base publicado de $0.002 por elemento exitoso y la validación fallida no consume saldo.