請選擇計算模式,再以 24 小時制輸入想起床的時間(或就寢時間)。會一次算出 1~7 個週期、符合睡眠週期段落的建議就寢時間(或起床時間)。
時間請以 24 小時制輸入(例如晚上 11 點 30 分就是「23」時「30」分)。週期長度和入睡所需時間保持空白時,以 90 分鐘、15 分鐘計算。根據「一晚睡 4~6 個週期比較好」的一般理論,在 5、6 個週期的列標上「(建議)」。
計算結果
在左側輸入欄填入時間,按下「計算」,結果就會顯示在這裡。
這個頁面可以做什麼
- 只要輸入像「早上 6 點起床」這樣想起床的時間,就能一次知道 1~7 個週期、符合睡眠週期段落的建議就寢時間
- 反過來,也能由像「晚上 23 點上床」這樣的就寢時間,算出符合週期段落的建議起床時間
- 根據「一晚睡 4~6 個週期比較好」的一般理論,在 5 個週期、6 個週期的列標上「(建議)」
- 睡眠週期的長度、入睡所需的時間(睡眠潛伏期),都能依自己的感覺修改(預設值:週期 90 分鐘、入睡 15 分鐘)
- 這個頁面還整理了公式的淺顯解說,以及可直接複製到 Excel、Google 試算表、Python 使用的公式
「睡眠週期 90 分鐘」是平均值,據說實際的長度因人而異(同一個人也會因日子不同),大約在 70~120 分鐘之間。這個計算是根據一般理論的參考,不是醫學建議。如果持續有睡不著、白天非常想睡等睡眠困擾,請考慮就醫諮詢。
這個計算有什麼用?
決定需要早起那天的就寢時間(旅行、出差、考試當天)
要早上 5 點起床的前一晚,很容易憑感覺決定幾點睡。起床 5:00、入睡 15 分鐘的話,6 個週期(睡眠 9 小時)是前一天的 19:45,5 個週期(7 小時 30 分)是 21:15。
一般認為週期的段落是睡眠較淺的時候,在這時起床比較容易清醒。雖然因人而異,但從起床時間反推,能幫助您養成有計畫地上床的習慣,而不是不知不覺熬夜。
在考試前一天、重要報告的前一晚規劃睡眠
在「要再多讀一點,還是早點睡」之間猶豫時,從起床時間反推,就能看出還能用的時間。例如學測、會考前一晚,起床 6:30 的話,5 個週期(睡眠 7 小時 30 分)是 22:45 睡,4 個週期(6 小時)是 0:15 睡。
一般認為睡眠能幫助大腦整理和儲存記憶,所以從需要的睡眠時間倒推來規劃,比熬夜臨時抱佛腳更穩妥。
調整輪班工作、大夜班下班後的睡眠節奏
上班時間每天不同時,每次都得想「該幾點睡」。只要輸入不同的起床時間重新計算,就能馬上知道當天的建議就寢時間。
大夜班下班後白天睡覺時,計算方法也一樣。不過受到晝夜節律(生理時鐘)影響,白天的睡眠容易比較淺,結果請只當作參考;如果持續身體不適,請考慮諮詢醫師。
決定午睡(小睡)的長度
有一種說法是,睡滿 1 個週期(約 90 分鐘)的小睡,比較容易在淺眠時醒來。用「計算起床時間」模式算 1 個週期,就能知道鬧鐘要設幾點(例如 13:00 躺下、入睡 15 分鐘,約 14:45 起床)。
另一方面,也有建議在進入深層睡眠前,只小睡 15~20 分鐘左右的說法。午睡太久可能會讓晚上比較難入睡,請選擇適合自己生活的方式。
公式
反推就寢時間(由想起床的時間)
數學寫法
(一般的數學式)
\(B\)
\(=\)
\(W\)
\(-\)
\(F\)
\(-\)
\(n\)
\(\times\)
\(C\)
文字寫法
(把符號換成文字的公式)
⑤
就寢時間 \(B\)
\(=\)
①
想起床的時間 \(W\)
\(-\)
②
入睡所需時間 \(F\)
\(-\)
③
週期數 \(n\)
\(\times\)
④
週期長度 \(C\)
用文字讀公式
①
從
想起床的時間 \(W\)
②
減去
入睡所需時間 \(F\)
,
③
再減去
週期數 \(n\)
④
乘以
週期長度 \(C\)
的時間,
⑤
就得到
就寢時間 \(B\)
簡單範例
想在早上 6:00 起床的人,入睡需要 15 分鐘、以 90 分鐘的週期睡 5 個週期時,就寢時間是(時間會早於 0:00,所以退到前一天)
就寢時間(前一天的 22:15)
\(=\)
想起床的時間(6:00)
\(-\)
入睡所需時間(15 分)
\(-\)
週期數(5 次)
\(\times\)
週期長度(90 分)
\(15 + 5 \times 90 = 465\)
\(465 \div 60 = 7.75 \rightarrow 7{:}45\)
\(6{:}00 - 7{:}45 = -1{:}45 \rightarrow 24{:}00 - 1{:}45 = 22{:}15\)
思考重點
如果先決定的是就寢時間,就把相同的材料反過來相加:起床時間 = 就寢時間 + 入睡所需時間 \(F\) + 週期數 \(n\) × 週期長度 \(C\)。這個計算機會算出 \(n = 1\)~\(7\) 的所有情況並排列出來,並根據「一晚睡 4~6 個週期比較好」的一般理論,在 5、6 個週期標上「(建議)」。
另外,「週期長度 90 分鐘」是平均值,實際的長度因人而異(同一個人也會因日子不同)。計算結果請當作參考就好。
週期數與睡眠時間的關係
數學寫法
(一般的數學式)
文字寫法
(把符號換成文字的公式)
\(S\)
\(=\)
\(n\)
\(\times\)
\(C\)
③
睡眠時間 \(S\)
\(=\)
①
週期數 \(n\)
\(\times\)
②
週期長度 \(C\)
用文字讀公式
①
把
週期數 \(n\)
②
乘以
週期長度 \(C\)
,
③
就得到
睡眠時間 \(S\)
簡單範例
以 90 分鐘的週期睡 6 個週期時,睡眠時間是
睡眠時間(9 小時)
\(=\)
週期數(6 次)
\(\times\)
週期長度(90 分)
\(6 \times 90 = 540\)
\(540 \div 60 = 9\)
思考重點
以 90 分鐘的週期來說,4 個週期是 6 小時、5 個週期是 7 小時 30 分、6 個週期是 9 小時。據說常被當作參考的「7 個半小時」這種剛好的睡眠時間,就是來自這個 \(90 \times 5\)。
睡眠時間 \(S\) 是「睡著的時間」,所以從上床到起床的時間,是再加上入睡所需時間 \(F\) 的長度。
就寢時間的基本計算方式,是用「想起床的時間 −(入睡所需時間 + 週期數 × 週期長度)」來反推。概念是讓起床時間對上睡眠較淺的時機(週期的段落)。90 分鐘是平均值,而且因人而異,結果請當作參考。
符號與用語解說
符號
| \(B\) | B | 就寢時間。上床的時間,是這個計算機在反推模式中求出的值。取英文 bedtime 的第一個字母。 |
| \(W\) | W | 想起床的時間(起床時間)。在反推模式中是輸入的值,在順推模式中是求出的值。取英文 wake(起床)的第一個字母。 |
| \(F\) | F | 入睡所需時間。從上床到真正睡著的時間,這個計算機的預設值是 15 分鐘。取英文 fall asleep(睡著)的第一個字母。 |
| \(n\) | n | 睡眠週期的數目。這個計算機會算出並顯示 \(n = 1\)~\(7\) 的所有情況。 |
| \(C\) | C | 一個睡眠週期的長度。一般認為平均約 90 分鐘,這個計算機的預設值也是 90 分鐘。取英文 cycle(週期)的第一個字母。 |
| \(S\) | S | 睡眠時間。從睡著到起床的長度,用 \(S = n \times C\) 求出。取英文 sleep 的第一個字母。 |
用語
| 睡眠週期 | 睡覺時,非快速動眼期和快速動眼期成為一組交替重複,這樣的一輪就是一個睡眠週期。一般認為平均約 90 分鐘,但據說因人(同一個人也因日子)不同,大約有 70~120 分鐘的差異。一晚通常重複 4~6 次左右。 |
| 非快速動眼期 | 讓大腦休息的睡眠(NREM 睡眠),從淺層到深層有好幾個階段。入睡後最先出現,一般認為在深層的非快速動眼期,生長激素的分泌最旺盛。 |
| 快速動眼期 | 身體在休息、大腦卻很活躍的淺層睡眠(REM 睡眠),容易做清楚的夢。REM 是「快速動眼(Rapid Eye Movement)」的縮寫,因為眼球會在眼皮下快速轉動而得名。出現在週期的後半,越接近清晨越長。 |
| 晝夜節律 | 體溫和荷爾蒙分泌等以約 24 小時為週期變化、身體本身具備的節律,也稱為「生理時鐘」。出國旅行時的時差,就是這個節律和當地時間不一致所造成的。 |
| 睡眠潛伏期 | 從上床準備睡覺到真正睡著所需的時間,相當於這個計算機的「入睡所需時間」。一般認為健康的成人大約是 10~20 分鐘。 |
建議先了解的基礎知識
為了讓您「理解意義」再使用本頁的計算,這裡整理了建議先了解的基礎知識。
遇到卡關時,回頭複習這些內容是最快的方法。
| 時刻與時間的計算(國小低~中年級,7~10 歲) |
|
| 24 時制(國小中年級,8~10 歲) |
|
| 乘法(國小低~中年級,7~10 歲) |
|
| 分鐘與小時的換算(國小中年級,8~10 歲) |
|
用 Excel 計算的方法
把下方表格整個複製,貼到 Excel 的 A1 儲存格就能直接使用。
「由想起床的時間反推就寢時間」的表格
| 想起床的時間 | 6:00 |
| 入睡所需時間(分) | 15 |
| 睡眠週期的長度(分) | 90 |
| 週期數(次) | 5 |
| 就寢時間 | =MOD(B1-(B2+B3*B4)/1440,1) |
「由就寢時間計算起床時間」的表格
| 就寢時間 | 23:00 |
| 入睡所需時間(分) | 15 |
| 睡眠週期的長度(分) | 90 |
| 週期數(次) | 6 |
| 起床時間 | =MOD(B1+(B2+B3*B4)/1440,1) |
「週期數與睡眠時間的關係」的表格
| 睡眠週期的長度(分) | 90 |
| 週期數(次) | 5 |
| 睡眠時間(分) | =B1*B2 |
| 睡眠時間(小時) | =B3/60 |
在 Excel 中,時間是以「1 天 = 1」的序列值來表示。所以要在「6:00」這類時間加減分鐘時,要先把分鐘除以 1440(= 24 小時 × 60 分鐘)。MOD 函數會在跨日時,把結果拉回 0:00~24:00 的範圍。第 1 個表格的答案是 22:15(前一天晚上),第 2 個表格是 8:15(隔天早上)。請注意,因為 MOD 已經處理了跨日,表格上不會顯示「前一天」「隔天」。
如果 B5 的結果顯示成「0.927…」這樣的數字,請把儲存格格式改成「h:mm」(時間)。第 3 個表格的答案是 450(分鐘)和 7.5(小時)。只要把 B 欄的數字改成自己的數字就能使用。
如果 B5 的結果顯示成「0.927…」這樣的數字,請把儲存格格式改成「h:mm」(時間)。第 3 個表格的答案是 450(分鐘)和 7.5(小時)。只要把 B 欄的數字改成自己的數字就能使用。
用 Google 試算表計算的方法
把下方表格整個複製,貼到 Google 試算表的 A1 儲存格就能直接使用。
「由想起床的時間反推就寢時間」的表格
| 想起床的時間 | 6:00 |
| 入睡所需時間(分) | 15 |
| 睡眠週期的長度(分) | 90 |
| 週期數(次) | 5 |
| 就寢時間 | =MOD(B1-(B2+B3*B4)/1440,1) |
「由就寢時間計算起床時間」的表格
| 就寢時間 | 23:00 |
| 入睡所需時間(分) | 15 |
| 睡眠週期的長度(分) | 90 |
| 週期數(次) | 6 |
| 起床時間 | =MOD(B1+(B2+B3*B4)/1440,1) |
「週期數與睡眠時間的關係」的表格
| 睡眠週期的長度(分) | 90 |
| 週期數(次) | 5 |
| 睡眠時間(分) | =B1*B2 |
| 睡眠時間(小時) | =B3/60 |
包含 MOD 函數在內,可以直接使用和 Excel 相同的公式。把表格整個複製,貼到 A1 儲存格,再把 B 欄的數字改成自己的數字即可。
如果結果顯示成「0.927…」這樣的數字,可以從選單的「格式 → 數值 → 時間」改成時間顯示。
如果結果顯示成「0.927…」這樣的數字,可以從選單的「格式 → 數值 → 時間」改成時間顯示。
用 Python 計算的方法
from datetime import datetime, timedelta
wake_time = datetime(2026, 7, 13, 6, 0) # 想起床的時間(日期是用來判斷跨日的假日期即可)
fall_asleep_minutes = 15 # 入睡所需時間(分鐘)
cycle_minutes = 90 # 睡眠週期的長度(分鐘)
for cycles in range(7, 0, -1):
bedtime = wake_time - timedelta(minutes=fall_asleep_minutes + cycles * cycle_minutes)
sleep_hours = cycles * cycle_minutes / 60 # 睡眠時間(小時)
recommended = "(建議)" if cycles in (5, 6) else "" # 根據一晚 4~6 個週期的理論的參考
day = "前一天 " if bedtime.date() < wake_time.date() else ""
print(f"{cycles} 個週期(睡眠 {sleep_hours:g} 小時):{day}{bedtime:%H:%M} {recommended}")
只用標準函式庫就能執行。timedelta 是表示「時間長度」的物件,從想起床的時間減去它,就是就寢時間(跨日的處理由 Python 依照日曆進行)。想由就寢時間求起床時間時,請把減法(-)改成加法(+),並把 wake_time 那一行改成就寢時間。同時把 day 那一行的比較方向改成「>」,並把「前一天」改成「隔天」,跨日的結果就會正確標上「隔天」。
用 LaTeX 等數學式語言的寫法(可直接複製)
反推就寢時間(由想起床的時間)
B = W − F − n × C
B = W - F - nC
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>B</mi><mo>=</mo>
<mi>W</mi><mo>−</mo>
<mi>F</mi><mo>−</mo>
<mi>n</mi><mo>×</mo><mi>C</mi>
</mrow>
</math>
B = W - F - n C
b = w - f - n*c
B := W - F - n*C;
B = W - F - n*C;
B = W - F - nC
週期數與睡眠時間的關係
S = n × C
S = nC
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>S</mi><mo>=</mo>
<mi>n</mi><mo>×</mo><mi>C</mi>
</mrow>
</math>
S = n C
s = n*c
S := n*C;
S = n*C;
S = nC
請 ChatGPT 幫忙計算的方法
你是睡眠週期計算的助理。請務必實際執行 Python 程式碼來進行下列計算,並且只根據執行結果的數值回答(不要用心算或猜測來回答)。 某人想在早上 6:00 起床,入睡需要 15 分鐘,一個睡眠週期是 90 分鐘。 請針對週期數 1~7 的每一種情況,用「就寢時間 = 起床時間 − 入睡所需時間 − 週期數 × 週期長度」計算就寢時間。時間早於 0:00 時,請退到前一天。 請列出每個週期數的就寢時間(24 小時制)和睡眠時間。另外,也請附註這是根據一般理論的參考,不是醫學建議。
使用方法
-
1輸入數值在輸入欄中輸入要計算的數值
-
2計算按下「計算」按鈕
-
3查看結果計算結果會立即顯示。計算的思路和公式的解說,也都能在同一個頁面查看
DataChef 的特色
簡單又免費
免費且無使用次數限制
不需專業知識,操作直覺又簡單
不需專業知識,操作直覺又簡單
免註冊會員
開啟頁面即可立即使用
無須登錄任何個人資料
無須登錄任何個人資料
安全又安心
通訊全程高度加密
按下「下載」後自動刪除檔案
按下「下載」後自動刪除檔案
高速
顯示與轉換都快速順暢,毫無等待壓力
無浮水印
沒有浮水印
無須標註來源出處
無須標註來源出處
可商業使用
可免費用於商業用途
亦無須事先取得商用授權
亦無須事先取得商用授權