Uyku Döngüsü Hesaplayıcı
90 dakikalık uyku döngülerine göre en iyi uyku veya uyanış zamanını bulun.
Uyku Döngüsü Hesaplayıcısı, vücudunuzun doğal 90 dakikalık uyku döngüleriyle uyumlu olacak şekilde yatış saatinizi veya uyanış saatinizi planlamanıza yardımcı olur. Uyku sırasında beyin hafif uyku, derin yavaş dalga uykusu ve REM (rüya) uykusu dahil aşamaları döngüler.
Uyanmak istediğiniz saati veya uyumayı planladığınız saati girin. Araç, uykuya dalmak için gereken ortalama 15 dakikayı hesaba katarak tam bir uyku döngüsünün sonuna denk gelen yatış veya uyanış saatlerini hesaplar.
Çoğu yetişkin 7-9 saat uyku, yani 5-6 tam döngüye ihtiyaç duyar. Önerilen süre uyumanıza rağmen düzenli olarak yorgun uyanıyorsanız, sorun zamanlama olabilir — derin uyku aşamasının ortasında uyanıyorsunuzdur. Yatış saatinizi 20-30 dakika ayarlamak belirgin bir fark yaratabilir.
Sıkça Sorulan Sorular
Kod Uygulaması
from datetime import datetime, timedelta
CYCLE_MINUTES = 90 # average sleep cycle length
SLEEP_LATENCY_MINUTES = 15 # average time to fall asleep
def wake_times(bedtime_str, num_cycles=6, latency_minutes=SLEEP_LATENCY_MINUTES):
"""
Given a bedtime string ("HH:MM"), return suggested wake times
for 3 to num_cycles complete sleep cycles.
"""
bedtime = datetime.strptime(bedtime_str, "%H:%M")
results = []
for cycles in range(3, num_cycles + 1):
sleep_duration = timedelta(
minutes=latency_minutes + cycles * CYCLE_MINUTES
)
wake = bedtime + sleep_duration
results.append({
"cycles": cycles,
"sleep_hours": round((cycles * CYCLE_MINUTES) / 60, 1),
"wake_time": wake.strftime("%H:%M"),
})
return results
def bedtime_for_wake(wake_time_str, num_cycles=6, latency_minutes=SLEEP_LATENCY_MINUTES):
"""
Given a target wake time, suggest when to go to bed for
3 to num_cycles complete sleep cycles.
"""
wake = datetime.strptime(wake_time_str, "%H:%M")
results = []
for cycles in range(3, num_cycles + 1):
sleep_duration = timedelta(
minutes=latency_minutes + cycles * CYCLE_MINUTES
)
bedtime = wake - sleep_duration
results.append({
"cycles": cycles,
"sleep_hours": round((cycles * CYCLE_MINUTES) / 60, 1),
"bedtime": bedtime.strftime("%H:%M"),
})
return results
# Example 1: bedtime → wake times
print("If you go to bed at 23:00, wake up at:")
for w in wake_times("23:00"):
print(f" {w['cycles']} cycles ({w['sleep_hours']}h) → wake at {w['wake_time']}")
# Example 2: target wake time → bedtimes
print("\nTo wake up at 07:00, go to bed at:")
for b in bedtime_for_wake("07:00"):
print(f" {b['cycles']} cycles ({b['sleep_hours']}h) → bed at {b['bedtime']}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.