N-esimo giorno del mese
Il terzo lunedì di marzo 2024 è il 18 e l'ultimo venerdì di febbraio 2024 è il 23. Scelga anno, mese, giorno della settimana e dal primo al quinto o l'ultimo per datare festività mobili o riunioni mensili. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Anno
- 2024
- Mese
- 3
- Giorno della settimana obiettivo
- monday
- Ordinale
- 3
- Indice del giorno della settimana
- 1
- Indice ordinale
- 3
- Giorno
- 18
- Data
- 2024-03-18
Calendari di riunioni, scadenzari delle paghe, festività pubbliche ed eventi sociali ricorrenti sono spesso definiti come il secondo martedì o l'ultimo venerdì di un mese nominato anziché come un numero di giorno fisso. Tradurre questa regola umana in una data gregoriana concreta richiede di sapere quali giorni della settimana cadono nel mese, come gli anni bisestili allungano febbraio e se una quinta occorrenza entra davvero prima della fine del mese. Questo calcolatore accetta un anno, un mese da uno a dodici, un nome di giorno della settimana o un indice a base zero e un ordinale dal primo al quinto oppure l'ultimo, e restituisce la data civile ISO di quell'occorrenza. Quando la posizione richiesta non esiste — per esempio un quinto lunedì in un mese che contiene solo quattro lunedì — la richiesta fallisce con un chiaro errore di validazione invece di inventare una data nel mese successivo.
Come viene risolto il giorno n-esimo del mese senza orologio
Si parte da quattro elementi di intento: un anno gregoriano nell'intervallo pratico da uno a novemilanovecentonovantanove, un mese numerato da uno per gennaio a dodici per dicembre, un giorno della settimana obiettivo e un ordinale che significa primo, secondo, terzo, quarto, quinto o ultimo. Si confermano le regole del bisestile per febbraio con il test gregoriano standard: un anno è bisestile quando è divisibile per quattro, salvo che gli anni secolari lo siano solo quando sono divisibili anche per quattrocento.
Questo decide se febbraio ha ventotto o ventinove giorni e quindi quanti di ciascun giorno della settimana possono comparire. Poi si calcola il giorno della settimana del primo del mese con il metodo in forma chiusa di Sakamoto, che usa solo divisione intera e una tabella fissa di dodici voci per i mesi — mai l'orologio del sistema e mai un oggetto Date di JavaScript, così fusi orari e tabelle dell'ora legale non possono spostare la risposta.
Da quel primo giorno della settimana del mese, il numero di giorno della prima occorrenza corrispondente è uno più la distanza modulare fino all'obiettivo. Ogni occorrenza successiva è sette giorni di calendario più tardi. Il conteggio delle occorrenze è quante volte si può aggiungere sette senza uscire dalla lunghezza del mese.
Per un ordinale numerico n, il giorno è la prima occorrenza più n meno uno volte sette, e la richiesta viene rifiutata quando n supera il conteggio. Per l'ultimo, n viene impostato al conteggio completo così viene restituito l'ultimo giorno corrispondente del mese. Il risultato è formattato come stringa ISO quattro-due-due.
Dove compaiono i calendari a giorno n-esimo nel lavoro reale
Le festività pubbliche in stile statunitense come il Ringraziamento (quarto giovedì di novembre) e la Festa dei lavoratori (primo lunedì di settembre) sono definite da ordinali del giorno della settimana anziché da numeri di giorno fissi, quindi i calendari delle paghe e scolastici devono risolverle per ogni anno. Le riunioni aziendali plenarie cadono spesso il secondo martedì di ogni mese e i treni di rilascio dei prodotti possono partire l'ultimo venerdì.
I sistemi bancari e di regolamento codificano le scadenze ricorrenti come regole di giorno-nel-mese che devono restare stabili attraverso anni bisestili e cambi di secolo. Gli ingegneri dei dati materializzano tabelle dimensionali di festività e date di riunione per l'analitica senza trascinare un'intera libreria iCalendar in un percorso di funzioni pure.
Se in seguito Le servirà aggiungere un numero arbitrario di giorni di calendario a una data, calcolare ordinali di giorno dell'anno, trovare in quale trimestre cade una data o invertire il problema chiedendo quale occorrenza sia una data data, tratti questi casi come intenti di ricerca e landing page separati invece di sovraccaricare questa pagina del giorno n-esimo del mese.
Casi d'uso
Festività pubbliche definite da ordinali
Risolva Ringraziamento, Festa dei lavoratori, Memorial Day e regole simili in date ISO concrete per qualsiasi anno senza tabelle codificate a mano.
Riunioni ricorrenti e cadenze di rilascio
Trasformi politiche come «secondo martedì» o «ultimo venerdì del mese» in date di calendario per inviti, blocchi CI e rapporti di stato.
Scadenze di paghe e regolamenti
Materializzi le scadenze di giorno-nel-mese per le pipeline finanziarie con matematica gregoriana sicura per i bisestili ed errori chiari quando manca una quinta occorrenza.
Domande frequenti
Cosa significa giorno della settimana n-esimo del mese?
Significa la data del primo, secondo, terzo, quarto, quinto o ultimo giorno nominato della settimana dentro un dato mese di calendario — per esempio il terzo lunedì di marzo 2024 è 2024-03-18.
Cosa succede se la quinta occorrenza non esiste?
L'errore indica quante occorrenze di quel giorno il mese contiene effettivamente.
Come richiede l'ultimo venerdì di un mese?
La data restituita è l'ultimo venerdì che cade ancora dentro quel mese.
Gestisce gli anni bisestili?
Sì. Si applicano le regole gregoriane del bisestile, quindi febbraio può avere ventinove giorni e contenere cinque occorrenze di alcuni giorni. Non viene usato alcun oggetto Date di JavaScript.
Quanto costa?
Lo strumento nel browser è gratuito e funziona in locale.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"year": 2024,
"month": 3,
"weekday": "monday",
"ordinal": "3"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.nth_weekday_of_month",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Cosa invia e cosa riceve in risposta
I controlli classici includono il terzo lunedì di marzo duemilaventiquattro che cade il diciotto, l'ultimo venerdì di febbraio duemilaventiquattro che cade il ventitré e il quinto giovedì di febbraio duemilaventiquattro che cade il ventinove perché quel febbraio bisestile ha cinque giovedì. Invii quattro campi obbligatori: year come anno intero finito, month come intero da uno a dodici, weekday come nome inglese come monday oppure come intero da zero a sei con domenica uguale a zero, e ordinal come valore da uno a cinque, le parole da first a fifth o la stringa last (accettata anche come meno uno). Campi mancanti, anni o mesi non interi, token di giorno sconosciuti, ordinali fuori dall'intervallo uno-cinque che non siano last e richieste di un'occorrenza inesistente in quel mese falliscono tutti con invalid_input e non vengono addebitati. In caso di successo la risposta riporta year, month, il nome normalizzato del giorno e weekday_index, l'ordinale come numero o la stringa last, ordinal_index come numero di occorrenza risolta a base uno, il giorno del mese, la stringa della data ISO, occurrence_count per quante volte quel giorno compare nel mese, is_leap_year per l'anno, days_in_month e una breve stringa formula che documenta le regole del bisestile e di Sakamoto. Il prezzo delle chiamate API riuscite è la base pubblicata di $0.002 per elemento; i fallimenti di validazione non consumano saldo prepagato.
Dove compaiono i calendari a giorno n-esimo nel lavoro reale
Poiché questa capacità è un motore parse puro, il prezzo API è la base pubblicata di $0.002 per elemento riuscito e la validazione fallita non consuma saldo.