Wiederkehrender-Datum-Generator
Erzeugt wiederkehrende Ereignisdaten: täglich, wöchentlich, monatlich oder benutzerdefinierte Intervalle.
Über dieses Tool
Ein Generador für wiederkehrende Daten hilft dir dabei, Daten für sich wiederholende Ereignisse zu berechnen und anzuzeigen, ohne manuelle Berechnungen durchführen zu müssen. Egal ob du wöchentliche Teambesprechungen, monatliche Rechnungszahlungen oder tägliche Erinnerungen planst, dieses Tool generiert sofort alle benötigten Daten basierend auf deinem Startdatum und deinem Wiederholungsmuster.
Um das Tool zu verwenden, wähle dein Startdatum, wähle einen Wiederholungstyp (täglich, wöchentlich, monatlich oder jährlich) und lege fest, wie viele Vorkommen du generieren möchtest. Das Tool zeigt dir sofort eine vollständige Liste aller zukünftigen Ereignisdaten an, die du kopieren, exportieren oder bei Bedarf einsehen kannst. Du kannst auch benutzerdefinierte Intervalle angeben, z. B. alle 3 Wochen oder alle 6 Monate.
Dieses Tool ist wertvoll für Projektmanager, Veranstaltungsplaner und alle, die wiederkehrende Aufgaben planen. Es beseitigt Fehler bei manuellen Datumsberechnungen und spart Zeit bei der Koordination von Besprechungen, Abos oder Wartungsplänen über mehrere Daten hinweg.
Häufig gestellte Fragen
Code-Implementierung
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.