睡眠负债计算器

把每日需要睡多久、实际睡了多久、连续统计多少天填进去,得到这段时间累计下来的睡眠缺口。默认示例是每天需要 8 小时、实睡 6.2 小时、连续 14 天,打开就能看到 25.2 小时的累计负债与对应补觉天数。

你按自身作息认定的每日该睡小时数,默认 8;成年人常见建议是 7 到 9 小时区间。
这段日子里平均每天真正睡到的小时数;超过 24 属非法输入,会点名报错。
要累计的连续天数,须为正整数;默认 14 天,即两周。
默认 2 位,允许 0 到 6 的整数,只改显示不改内部计算精度。
默认已填 3 行示例;批量结果按当前小数位列在下方批量输出区。
单日缺口(h)1.80
累计总需求(h)112.00
累计实睡(h)86.80
累计负债(h)25.20
状态睡眠负债
批量试算(默认 3 行,按 2 位小数):
8,6.2,14 -> 25.20 h 负债
8,7,7 -> 7.00 h 负债
7.5,6,30 -> 45.00 h 负债

提示:四个数值框按裸 Enter 即重算;批量框按 Ctrl/Cmd + Enter 重算批量。

补觉天数估算(按当前累计负债现场推算)

每天多睡 1 h:需 26 天;1.5 h:需 17 天;2 h:需 13 天;按 1:1.5 恢复效率折算:需额外 37.80 h 睡眠。

需求 × 实睡 × 天数 累计缺口对照表

每日需求 n(h)每日实睡 a(h)天数 d累计负债(h)备注

对照表每行都按 (n−a)×d 现场生成,默认显示前 12 行,点「加载更多」展开到 18 行;导出与复制都取自同一份数据,不会漏掉未展开的行。

使用方法

睡眠负债计算器把「累计缺口」做成三个数就能试算的小工具,打开页面时已填好默认示例:每日需求 8 小时、实睡 6.2 小时、统计 14 天,不必先输入就能看到 25.2 小时累计负债、补觉天数与对照表。它算的不是某一天少睡多少,而是一段日子里累积的总缺口,所以「天数」不能省。

  1. 第一框填每日需求 n(小时):你按自身作息认定的每日该睡时长,默认 8。成年人常见的建议是 7 到 9 小时,它是一段区间而不是一个必须照抄的定值。
  2. 第二框填每日实睡 a(小时):这段日子里平均每天真正睡到的时长,默认 6.2。填的是平均值,不必把每天逐一录入。
  3. 第三框填统计天数 d(天):要累计的连续天数,须为正整数,默认 14。第四框是结果小数位,默认 2 位,允许 0 到 6。
  4. 任意一个数值框里按裸 Enter 键(不加 Ctrl、Cmd 或 Shift)即可重算,也可以点「计算负债」;五张卡片分别给出单日缺口、累计总需求、累计实睡、累计负债与状态。
  5. 下方「批量试算」是多行文本框,每行写一组「需求,实睡,天数」,按 Ctrl/Cmd + Enter 一次算出整批结果;非法行会点名第几行并说明原因,不会悄悄按零处理。

「载入示例」还原默认样本,「复制结果」收进剪贴板。补觉天数区按当前负债现场推算,结果区与错误区都带 role="alert"。对照表默认 12 行,点「加载更多」展开到 18 行,可导出带 BOM 的 CSV 或按 TSV 复制。

能解决什么

第一个用途是把「最近总觉得睡不够」变成一个可以量化的数。人很容易记住某一晚熬到几点,却很难凭印象说清连着两周到底欠了多少。按默认示例,每天比需求少睡 1.8 小时,单看一天不算触目惊心,乘上 14 天就是 25.2 小时,相当于整整少睡了一天多。把缺口摊到纸面上,比「我好像有点缺觉」更利于做作息调整。

第二个用途是纠正「周末猛补就能清零」的直觉。很多人以为工作日少睡、周末多睡几小时就两清,但补觉并不是一比一偿还:恢复睡眠的效率、睡眠惯性与昼夜节律相位都会让实际补回的量打折。本页按 1:1.5 的恢复效率折算时,25.2 小时负债对应需要额外 37.80 小时睡眠,这个数字明确告诉你「欠多少就补多少」是过度乐观的估计。

第三个用途是区分负债与盈余。当实睡长期高于需求,公式结果为负,本页把它标成「睡眠盈余」而不是负数负债,也不会拿它去抵以后熬夜的额度。把盈余当成可透支的额度,正是这类线性模型最容易被误用的地方。

本页不做医学诊断、不替代睡眠监测或医生建议,也不评估失眠成因或预测健康风险。长期睡不够、白天过度嗜睡应就医,别靠一个乘法给自己下结论。睡眠负债计算器只提供累计缺口估算。

原理和变量

核心是线性估算式:累计负债 = (n − a) × d。先算单日缺口 n − a,再乘以天数 d 得到整段累计值。默认 n=8、a=6.2、d=14 时单日缺口 1.8 小时,累计 (8−6.2)×14 = 25.2 小时。它假设每天的需求与实睡都稳定在平均值上,是「估算」而非逐日精确求和——真实作息的逐日起伏被公式抹平了。

补觉天数同样是算出来的,不是背下来的。若累计负债为 L 小时,每天在原作息之外多睡 e 小时,理想情况下需要 ceil(L / e) 天。对 L=25.2:e=1 得 26 天、e=1.5 得 17 天、e=2 得 13 天。之所以用向上取整,是因为天数必须是整数,少一天就补不满。按恢复效率 1:1.5 折算,则需额外 L × 1.5 = 37.80 小时睡眠,这一列专门用来暴露「补觉非一比一」的差距。

变量含义默认值合法范围
n每日需求小时数80.5 到 24
a每日实睡小时数6.20 到 24
d统计天数,正整数141 到 3650
n − a单日缺口,负值即盈余1.8由 n、a 推出
(n − a) × d累计负债或累计盈余25.2由三变量推出
dp显示用小数位20 到 6 的整数

内部用完整双精度计算,只在显示时按 dp 一次性舍入,不把中间结果反复取整,不存在累积舍入误差。改小数位只影响写法,负债本身不变。

完整示例

以默认输入 n=8 h、a=6.2 h、d=14 天走一遍完整链路。第一步求单日缺口:n − a = 8 − 6.2 = 1.8 h。第二步累计到 14 天:1.8 × 14 = 25.2 h,这就是卡片里的累计负债。换个角度核对:14 天全按 8 小时计总需求 8 × 14 = 112.0 h,实睡合计 6.2 × 14 = 86.8 h,两者之差 112.0 − 86.8 = 25.2 h,与公式结果完全吻合,三条路径对得上。

补觉区按这个 L=25.2 现场推算:每天多睡 1 小时需 ceil(25.2/1) = 26 天,多睡 1.5 小时需 ceil(25.2/1.5) = 17 天,多睡 2 小时需 ceil(25.2/2) = 13 天;按 1:1.5 恢复效率则需额外 25.2 × 1.5 = 37.80 h 睡眠。这些数字都随输入框变化,不是写死在页面里的答案。

把 a 改成 9 再按回车,累计结果变成 −14.00 小时,状态切成「睡眠盈余」;把 d 改成 60、a 改成 7.5 得 30.00 小时,对应对照表最后一行。改任意合法值,卡片、快照与补觉区一起跟着变。

批量框默认填了三行示例,按 Ctrl/Cmd + Enter 一次列出结果;非法行会点名并说明原因。所有示例都由同一条 (n − a) × d 现算,对照表里固定参数组合也是同一公式的展开。

对照表

对照表把 12 组典型的需求、实睡与天数组合排在一起,默认显示前 12 行,点「加载更多」展开到 18 行。举几组读数:n=8、a=7、d=7 得 7.00 小时;n=7.5、a=6、d=30 得 45.00 小时;n=8、a=8、d=14 恰好得 0.00 小时,表示收支相抵;n=8、a=9、d=14 得到 −14.00 小时,备注列标成「盈余,非负债」;n=9、a=6.5、d=10 得 25.00 小时。

表里既有零值也有负值,正是为了让「负债」「持平」「盈余」三种状态在同一张表里对照。每一行的结果都由脚本用 (n − a) × d 现场算出,负值行统一写「盈余,非负债」,不把它当负数负债展示;改小数位后整张表跟着重排精度,不会出现两套数字。

卡片回答「我这段具体欠多少」,对照表回答「不同作息大致落在哪个量级」,两者独立但同源。导出的 CSV 带 BOM,Excel 打开不乱码;按 TSV 复制可直接粘进表格软件自动分列。

结果边界与舍入

常见问题

为什么算出来是负数,是不是页面坏了?

不是坏了,是你填的实睡长期高于需求。比如 n=8、a=9、d=14,公式得 (8−9)×14 = −14 小时。本页把这种结果标成「睡眠盈余」,明确它不是负债,也不会当成可以以后透支的额度。若你本意是算缺口,请检查 a 是否填反成了需求、n 是否填成了实睡。

每天少睡一点,为什么两周就欠了一天多?

因为乘数效应。默认单日缺口 1.8 小时不大,乘以 14 天就是 25.2 小时,比一整天还多。单日缺口容易被低估,累计才显出量级;对照表里 n=7.5、a=6、d=30 得 45 小时也是同理。

周末多睡几小时能把欠的补回来吗?

不能按 1:1 指望。补觉受恢复睡眠效率、睡眠惯性与昼夜节律相位影响,实际补回量会打折。本页按 1:1.5 折算,25.2 小时负债需额外 37.80 小时睡眠;每天多睡 1、1.5、2 小时分别需 26、17、13 天,都在提醒「欠多少补多少」是乐观估计。

需求到底该填 8 还是别的数?

成年人常见建议是 7 到 9 小时的区间,8 只是本页为方便计算取的默认值,不是对每个人都适用的标准。年龄、遗传、健康状态都会改变实际需要。建议分别试填 7、8、9 看看结果对 n 有多敏感,再按自身长期精神状态判断,别把默认值当医嘱。

天数能填小数或 0 吗?

不能。天数是连续日历天数,须为 1 到 3650 的正整数;填 0、负数、小数或非数字都会点名报错并停止计算。半天累计没有统一含义,需要时请先换算成小时另行处理。

实睡超过 24 小时或需求填 0 会怎样?

都会给具体报错,不会静默归零。一天最多 24 小时,a>24 显然不合法;n≤0 意味着不需要睡眠,公式失去意义。数值框给了 min=0.5 或 0、max=24 的量程,越界、留空、填文字分别有对应文案,先纠正输入再重算。

结果和对照表的小数位为什么不一样?

是同一数值的不同显示精度。内部始终用完整双精度计算,只按「结果小数位」框的 dp 一次性舍入;把 dp 调到 0 看整数、调回 2 看两位,卡片、快照、补觉区与对照表一起变,数值本身没变,不存在表算错或卡片算错。

这个数能当诊断或熬夜额度用吗?

都不能。本页只是线性估算,不评估失眠、嗜睡或健康风险,也不替代医生建议;长期睡不够应就医。盈余不能抵熬夜额度,那是把模型误用成账户。计算全在本地完成,数据不上传。

相关工具

下面三个站内工具都与「把数值整理清楚」有关,按需取用,均为已上线的站内页面。