Générateur de Dates Récurrentes
Génère des dates d'événements récurrents : quotidien, hebdomadaire, mensuel ou intervalles personnalisés.
À propos de cet outil
Un Générateur de Dates Récurrentes vous aide à calculer et afficher les dates pour les événements répétitifs sans effectuer de calculs manuels. Que vous planifiiez des réunions d'équipe hebdomadaires, des paiements de factures mensuels ou des rappels quotidiens, cet outil génère instantanément toutes les dates dont vous avez besoin en fonction de votre date de début et de votre modèle de récurrence.
Pour utiliser l'outil, sélectionnez votre date de début, choisissez un type de récurrence (quotidienne, hebdomadaire, mensuelle ou annuelle) et indiquez le nombre d'occurrences que vous souhaitez générer. L'outil affichera immédiatement une liste complète de toutes les dates d'événements futurs, que vous pouvez copier, exporter ou consulter au besoin. Vous pouvez également spécifier des intervalles personnalisés, par exemple toutes les 3 semaines ou tous les 6 mois.
Cet outil est inestimable pour les chefs de projet, les organisateurs d'événements et toute personne planifiant des tâches récurrentes. Il élimine les erreurs de calculs manuels de dates et vous fait gagner du temps lors de la coordination de réunions, d'abonnements ou de calendriers de maintenance sur plusieurs dates.
Questions Fréquentes
Implémentation du Code
from datetime import date, timedelta
from dateutil.relativedelta import relativedelta # pip install python-dateutil
def generate_recurring_dates(
start: str,
pattern: str,
count: int,
days_of_week: list[int] = None, # 0=Mon..6=Sun, for weekly multi-day
) -> list[str]:
"""
pattern: 'daily' | 'weekly' | 'biweekly' | 'monthly' | 'yearly'
"""
start_date = date.fromisoformat(start)
results = []
if pattern == "weekly" and days_of_week:
# Multi-day-of-week weekly
d = start_date - timedelta(days=start_date.weekday()) # Go to Monday of week
while len(results) < count:
for dow in sorted(days_of_week):
if len(results) >= count:
break
candidate = d + timedelta(days=dow)
if candidate >= start_date:
results.append(candidate.isoformat())
d += timedelta(weeks=1)
return results
current = start_date
for _ in range(count):
results.append(current.isoformat())
if pattern == "daily":
current += timedelta(days=1)
elif pattern == "weekly":
current += timedelta(weeks=1)
elif pattern == "biweekly":
current += timedelta(weeks=2)
elif pattern == "monthly":
current += relativedelta(months=1)
elif pattern == "yearly":
current += relativedelta(years=1)
return results
# Examples
print(generate_recurring_dates("2025-01-06", "weekly", 5))
print(generate_recurring_dates("2025-01-01", "monthly", 6))
print(generate_recurring_dates("2025-01-06", "weekly", 8, days_of_week=[0, 2])) # Mon+Wed
Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.