Nième jour de semaine du mois
Le troisième lundi de mars 2024 tombe le 18 et le dernier vendredi de février 2024 le 23. Choisissez l'année, le mois, le jour de semaine et du premier au cinquième ou le dernier pour dater jours fériés mobiles et réunions mensuelles. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Année
- 2 024
- Mois
- 3
- Jour de semaine cible
- monday
- Rang
- 3
- Indice du jour de semaine
- 1
- Indice ordinal
- 3
- Jour
- 18
- Date
- 2024-03-18
Les plannings de réunions, les calendriers de paie, les jours fériés et les événements sociaux récurrents sont souvent définis comme le deuxième mardi ou le dernier vendredi d'un mois nommé plutôt que par un numéro de jour fixe. Traduire cette règle humaine en une date grégorienne concrète exige de savoir quels jours de semaine tombent dans le mois, comment les années bissextiles allongent février, et si une cinquième occurrence tient réellement avant la fin du mois. Ce calculateur accepte une année, un mois de un à douze, un nom de jour de semaine ou un indice de base zéro, et un ordinal de premier à cinquième ou dernier, puis renvoie la date civile ISO de cette occurrence. Quand le créneau demandé n'existe pas — par exemple un cinquième lundi dans un mois qui n'en compte que quatre — la requête échoue avec une erreur de validation claire au lieu d'inventer une date dans le mois suivant.
Comment le nième jour de semaine d'un mois est résolu sans horloge
Partez de quatre éléments d'intention : une année grégorienne dans la plage pratique de un à neuf mille neuf cent quatre-vingt-dix-neuf, un mois numéroté de un pour janvier à douze pour décembre, un jour de semaine cible, et un ordinal signifiant premier, deuxième, troisième, quatrième, cinquième ou dernier. Confirmez les règles bissextiles de février avec le test grégorien standard : une année est bissextile lorsqu'elle est divisible par quatre, sauf que les années séculaires ne le sont que si elles sont aussi divisibles par quatre cents.
Cela décide si février compte vingt-huit ou vingt-neuf jours, et donc combien de chaque jour de semaine peut apparaître. Calculez ensuite le jour de semaine du premier du mois avec la méthode en forme close de Sakamoto, qui n'utilise que des divisions entières et une table fixe de douze entrées — jamais l'horloge de l'hôte ni un objet Date de JavaScript, donc ni les fuseaux horaires ni l'heure d'été ne peuvent déplacer la réponse.
À partir de ce jour de semaine du premier, le numéro de jour de la première occurrence correspondante est un plus la distance modulaire jusqu'à la cible. Chaque occurrence suivante est sept jours civils plus tard. Le nombre d'occurrences est le nombre de fois où l'on peut ajouter sept sans sortir de la longueur du mois.
Pour un ordinal numérique n, le jour est la première occurrence plus n moins un fois sept, et la requête est rejetée quand n dépasse le nombre. Pour last, n est fixé au nombre total, donc le dernier jour correspondant du mois est renvoyé. Formatez le résultat en chaîne ISO quatre-deux-deux.
Où les calendriers par nième jour de semaine servent réellement
Les jours fériés de style américain comme Thanksgiving (quatrième jeudi de novembre) et Labor Day (premier lundi de septembre) sont définis par des ordinaux de jours de semaine plutôt que par des numéros fixes, donc les calendriers de paie et scolaires doivent les résoudre pour chaque année. Les réunions générales d'entreprise tombent souvent le deuxième mardi du mois, et les trains de livraison produit peuvent partir le dernier vendredi.
Les systèmes bancaires et de règlement encodent des échéances récurrentes comme des règles jour-dans-le-mois qui doivent rester stables à travers les années bissextiles et les changements de siècle. Les ingénieurs données matérialisent des tables de dimensions de jours fériés et de réunions pour l'analytique sans intégrer une bibliothèque iCalendar complète dans un chemin de fonction pure.
Si vous devez ensuite ajouter un nombre arbitraire de jours civils à une date, calculer des ordinaux de jour de l'année, trouver le trimestre d'une date, ou inverser le problème en demandant quelle occurrence est une date donnée, traitez-les comme des intentions de recherche et des pages distinctes plutôt que de surcharger cette page du nième jour de semaine du mois.
Cas d’usage
Jours fériés définis par ordinaux de jours de semaine
Résolvez Thanksgiving, Labor Day, Memorial Day et les règles similaires en dates ISO concrètes pour n'importe quelle année, sans tables codées en dur.
Réunions d'équipe récurrentes et cadences de livraison
Transformez les règles « deuxième mardi » ou « dernier vendredi du mois » en dates calendaires pour les invitations, les gels de CI et les rapports d'avancement.
Échéances de paie et de règlement
Matérialisez les échéances jour-dans-le-mois pour les pipelines financiers avec une arithmétique grégorienne sûre et des erreurs claires quand une cinquième occurrence manque.
Questions fréquentes
Que signifie le nième jour de semaine du mois ?
C'est la date du premier, deuxième, troisième, quatrième, cinquième ou dernier jour de semaine nommé dans un mois civil donné — par exemple le troisième lundi de mars 2024 est le 2024-03-18.
Que se passe-t-il si la cinquième occurrence n'existe pas ?
L'erreur indique combien d'occurrences de ce jour le mois compte réellement.
Comment demander le dernier vendredi d'un mois ?
La date renvoyée est le dernier vendredi qui tombe encore dans ce mois.
Gère-t-il les années bissextiles ?
Oui. Les règles grégoriennes s'appliquent, donc février peut avoir vingt-neuf jours et contenir cinq occurrences de certains jours. Aucun objet Date de JavaScript n'est utilisé.
Combien cela coûte-t-il ?
L'outil du navigateur est gratuit et s'exécute localement.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"year": 2024,
"month": 3,
"weekday": "monday",
"ordinal": "3"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.nth_weekday_of_month",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Ce que vous envoyez et ce que vous recevez
Les vérifications classiques incluent le troisième lundi de mars deux mille vingt-quatre tombant le dix-huit, le dernier vendredi de février deux mille vingt-quatre tombant le vingt-trois, et le cinquième jeudi de février deux mille vingt-quatre tombant le vingt-neuf car ce février bissextile compte cinq jeudis. Envoyez quatre champs obligatoires : year comme année entière finie, month comme entier de un à douze, weekday comme nom anglais tel que monday ou comme entier de zéro à six avec dimanche égal à zéro, et ordinal de un à cinq, les mots first à fifth, ou la chaîne last (aussi acceptée comme moins un). Les champs manquants, les années ou mois non entiers, les jetons de jour inconnus, les ordinaux hors de un à cinq autres que last, et les demandes d'une occurrence inexistante dans ce mois échouent tous avec invalid_input et ne sont pas facturés. En cas de succès, la réponse renvoie year, month, le nom de jour normalisé et weekday_index, l'ordinal comme nombre ou la chaîne last, ordinal_index comme numéro d'occurrence résolu de base un, le jour du mois, la chaîne de date ISO, occurrence_count indiquant combien de fois ce jour apparaît dans le mois, is_leap_year pour l'année, days_in_month, et une courte chaîne formula documentant les règles bissextiles et de Sakamoto. La tarification des appels API réussis est la base publiée de $0.002 par élément ; les échecs de validation ne consomment pas de solde prépayé.
Où les calendriers par nième jour de semaine servent réellement
Comme cette capacité est un moteur parse pur, la tarification API est la base publiée de $0.002 par élément réussi et une validation échouée ne consomme pas de solde.