Menstrual Cycle Calculator
Predict your next period and fertile window based on cycle length and last period date.
Ein Menstruationsrechner hilft dir, deine nächsten Periodentermine, das fruchtbare Fenster und den Eisprung anhand deiner durchschnittlichen Zykluslänge und dem Beginn deiner letzten Periode vorherzusagen. Die meisten Menstruationszyklen dauern 21 bis 35 Tage, der häufig genannte Durchschnitt liegt bei 28 Tagen — aber jeder Zyklus ist individuell.
Gib einfach das Startdatum deiner letzten Periode und deine durchschnittliche Zykluslänge ein. Das Tool berechnet dann dein voraussichtliches nächstes Datum, den geschätzten Eisprung (bei einem 28-Tage-Zyklus ca. Tag 14) und dein fruchtbares Fenster. Du kannst auch mehrere zukünftige Zyklen auf einmal einsehen.
Dieses Tool liefert nützliche Schätzwerte zur Planung und Orientierung. Die Zykluslänge kann sich durch Stress, Erkrankungen, Sport oder Hormonschwankungen verändern. Für medizinische Entscheidungen zu Fruchtbarkeit oder Verhütung solltest du ärztlichen Rat einholen.
Häufig gestellte Fragen
Code-Implementierung
from datetime import date, timedelta
def menstrual_cycle(last_period: date, cycle_length: int = 28, period_length: int = 5) -> dict:
"""
Predict next period and fertile window based on cycle data.
Ovulation assumed at cycle_length - 14 days (luteal phase = 14 days).
"""
ovulation_day = cycle_length - 14
next_period = last_period + timedelta(days=cycle_length)
ovulation_date = last_period + timedelta(days=ovulation_day)
fertile_start = ovulation_date - timedelta(days=5)
fertile_end = ovulation_date
return {
"last_period": last_period.strftime("%Y-%m-%d"),
"next_period": next_period.strftime("%Y-%m-%d"),
"ovulation_date": ovulation_date.strftime("%Y-%m-%d"),
"fertile_window": f"{fertile_start.strftime('%Y-%m-%d')} to {fertile_end.strftime('%Y-%m-%d')}",
"period_ends": (last_period + timedelta(days=period_length - 1)).strftime("%Y-%m-%d"),
}
result = menstrual_cycle(date(2025, 3, 1), cycle_length=28, period_length=5)
print(f"Last Period : {result['last_period']}")
print(f"Period Ends : {result['period_ends']}")
print(f"Fertile Window : {result['fertile_window']}")
print(f"Ovulation : {result['ovulation_date']}")
print(f"Next Period : {result['next_period']}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.