Zum Inhalt springen
🛠️ToolsShed

Schlafzyklen-Rechner

Berechnet optimale Schlaf- und Aufwachzeiten basierend auf 90-Minuten-Zyklen.

Über dieses Tool

Der Schlaf-Zyklus-Rechner hilft Ihnen, Ihre natürliche Schlafarchitektur zu verstehen und zu optimieren, indem er mit 90-Minuten-Schlafzyklen arbeitet. Schlafzyklen sind der natürliche Rhythmus des Körpers und durchlaufen Leichtschlaf, Tiefschlaf und REM-Schlaf (Traumschlaf), bevor sie sich wiederholen. Wenn Sie am Ende eines vollständigen Zyklus aufwachen, fühlen Sie sich erfrischt, aber wenn Sie mitten im Zyklus aufwachen, können Sie stundenlang schläfrig und verwirrt sein.

Um diesen Rechner zu verwenden, geben Sie einfach Ihre gewünschte Schlaf- oder Wachzeit ein, und das Tool zeigt Ihnen die optimalen Zeiten für das Gegenteil an. Wenn Sie beispielsweise um 7 Uhr aufwachen müssen, berechnet das Tool, wann Sie einschlafen sollten, um vollständige 90-Minuten-Zyklen abzuschließen—und schlägt Zeiten wie 22:30, 00:00 oder 1:30 Uhr vor. Egal ob Sie eine volle Nacht Schlaf oder ein Power Nap planen, dieser Ansatz hilft Ihnen, Ihren Schlaf mit dem natürlichen Rhythmus Ihres Körpers abzustimmen.

Häufig gestellte Fragen

Code-Implementierung

from datetime import datetime, timedelta

SLEEP_CYCLE_MINUTES = 90
FALL_ASLEEP_MINUTES = 14  # Average time to fall asleep

def wake_times_from_bedtime(bedtime: datetime, cycles: int = 5) -> list[datetime]:
    """Given a bedtime, return optimal wake-up times after N full 90-min cycles."""
    fall_asleep = bedtime + timedelta(minutes=FALL_ASLEEP_MINUTES)
    return [
        fall_asleep + timedelta(minutes=SLEEP_CYCLE_MINUTES * i)
        for i in range(1, cycles + 1)
    ]

def bedtimes_from_wake(wake_time: datetime, cycles: int = 5) -> list[datetime]:
    """Given a desired wake time, return bedtimes that allow N full 90-min cycles."""
    return [
        wake_time - timedelta(minutes=SLEEP_CYCLE_MINUTES * i + FALL_ASLEEP_MINUTES)
        for i in range(1, cycles + 1)
    ]

# Example: bedtime at 11 PM
bedtime = datetime.now().replace(hour=23, minute=0, second=0, microsecond=0)
print(f"Bedtime: {bedtime.strftime('%I:%M %p')}")
print("Best wake times:")
for t in wake_times_from_bedtime(bedtime):
    print(f"  {t.strftime('%I:%M %p')} ({(t - bedtime).seconds // 60} min)")

# Example: must wake at 7 AM
wake = datetime.now().replace(hour=7, minute=0, second=0, microsecond=0)
print(f"\nWake time: {wake.strftime('%I:%M %p')}")
print("Best bedtimes:")
for t in bedtimes_from_wake(wake):
    print(f"  {t.strftime('%I:%M %p')}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.