Aller au contenu

Délai en jours ouvrés

Calculer une échéance en jours ouvrés au Sénégal avec /v1/delais, et compter les jours ouvrés d'une période avec /v1/jours-feries/ouvres.

Objectif : afficher une date de livraison, de remboursement ou de réponse juste, sans oublier les week-ends ni les jours fériés.

Pour l'API, un jour ouvré va du lundi au vendredi et n'est pas un jour férié du jeu Jours fériés. Les dates sont au format AAAA-MM-JJ. Le Sénégal est à l'heure GMT toute l'année.

Ajouter N jours ouvrés

GET /v1/delais?from=2026-10-01&days=10

JSON
{ "from": "2026-10-01", "days": 10, "date": "2026-10-15", "holidays": [], "warnings": [] }
  • from : date de départ, non comptée.
  • days : entier de 0 à 3 650.
  • date : l'échéance.
  • holidays : les jours fériés sautés.
  • warnings : ce qui rend le résultat incertain.

Lire les avertissements

Les fêtes musulmanes dépendent de l'observation de la lune. Leurs dates sont prévisionnelles jusqu'à l'annonce officielle.

GET /v1/delais?from=2026-03-16&days=5

JSON
{
  "from": "2026-03-16", "days": 5, "date": "2026-03-24",
  "holidays": ["2026-03-20"],
  "warnings": ["2026-03-20 (Korité (Aïd el-Fitr)) est une date prévisionnelle."]
}

Le jeu couvre 2026 et 2027. Au-delà, seuls les week-ends sont exclus :

GET /v1/delais?from=2027-12-20&days=15

JSON
{
  "from": "2027-12-20", "days": 15, "date": "2028-01-10",
  "holidays": [],
  "warnings": ["Aucun jour férié connu pour 2028 : seuls les week-ends sont exclus."]
}

Affichez l'avertissement à l'utilisateur, par exemple « date estimée ». Ne promettez pas une date ferme qui dépend d'une fête lunaire.

Compter les jours ouvrés d'une période

GET /v1/jours-feries/ouvres?from=2026-12-01&to=2026-12-31 (bornes incluses)

JSON
{ "from": "2026-12-01", "to": "2026-12-31", "business_days": 22, "holidays": ["2026-12-25"], "warnings": [] }

L'intervalle est limité à 10 ans. Si to précède from, l'API renvoie 400 INVALID_RANGE. Une date invalide renvoie 400 INVALID_DATE.

Code

JavaScript
const API = process.env.API_URL ?? 'http://localhost:8787';

export async function echeance(depart, jours) {
	const res = await fetch(`${API}/v1/delais?from=${depart}&days=${jours}`);
	const corps = await res.json();
	if (!res.ok) throw new Error(corps.message);
	return { date: corps.date, estimee: corps.warnings.length > 0, avertissements: corps.warnings };
}

// await echeance('2026-10-01', 10) → { date: '2026-10-15', estimee: false, avertissements: [] }

Les réponses de cette page ont été obtenues sur l'API locale le 28 septembre 2026.

Et ensuite ?