使用方法
- 在「狗狗实际年龄」填 6(示例值),允许 0.1~30 的数值,可以带一位小数。不满 1 岁填 0.5 这样的数即可。
- 在「体型档位」选 中型犬(示例值)。档位按成年体重划分:小型犬 ≤ 10 kg、中型犬 10~25 kg、大型犬 > 25 kg,以它长成后的体重为准,不是当前体重。
- 点「换算人类年龄」,或在年龄输入框里直接按 Enter。结果区会给出一组卡片,而不是一个孤零零的数字。
- 看卡片:人类等效年龄是分档口径的主结果;对数公式对照给出另一套学术算法的值;×7 结果专门列出来让你看清老办法偏了多少;生命阶段与老年起点告诉你按人类 60 岁折算,这只狗还有多久进入老年。
- 下面的对照表覆盖 0.5~36 岁共 18 个档位,默认只显示 12 行,点「加载更多」补齐;点「复制对照表」得到制表符分隔的 TSV,点「导出 CSV」下载带 BOM 的表格文件,Excel 打开不会乱码。
这个狗年龄计算器能解决什么问题
一是把「我家狗几岁了」换成体检语境里的说法。兽医问诊、疫苗方案、麻醉风险评估、老年犬筛查项目,用的都是「相当于人类多少岁」这个量纲。这个狗年龄计算器给出的分档人龄,可以直接拿去和兽医对话,不必自己换算。
二是判断什么时候该做老年犬筛查。犬类的器官衰退速度随体型加大而加快,同一句「狗 8 岁了」,小型犬还在壮年,大型犬已经接近人类 60 岁。用体型分档换算后,你会看到大型犬 8 岁对应人类 60 岁、中型犬要到 9.2 岁、小型犬要 11 岁,筛查时间表因此完全不同。
三是纠正从小听来的「狗 1 岁等于人 7 岁」。这句口诀只在幼犬期和部分大型犬中年段碰巧接近,在 1 岁、2 岁这两个节点错得最离谱:1 岁犬按 ×7 只有 7 岁,而分档口径是 15 岁,差了 8 年;2 岁犬按 ×7 是 14 岁,实际是 24 岁,差了 10 年。
四是给混血犬与串串犬一个可用的估计。不知道确切品种时,按成年体型选一个小型 / 中型 / 大型档位就能得到合理区间,比按品种再去查表更实用。
本页不做这些事:不预测具体寿命(寿命受品种、绝育、体重、牙齿与心脏状况影响,个体差异极大)、不判断绝育或驱虫时间、不给出疫苗方案。要算人类自己的周岁与虚岁,请用页面底部的「年龄计算器」,那是按公历生日推算的另一套口径。
换算原理:AAHA 体型分档、对数公式与「×7」为什么错
主口径是一段分段函数,不是一条直线。本工具调用的算法是三条线性段拼起来的:犬龄 a ≤ 1 时人龄 = 15a;1 < a ≤ 2 时人龄 = 15 + 9(a − 1);a > 2 时人龄 = 24 + r × (a − 2),其中 r 随档位取 4(小型)、5(中型)、6(大型)。这些锚点是 AAHA(美国动物医院协会)与 AVMA 在 2019 年给出的宠物年龄换算表所采用的口径:第 1 年折合人类 15 岁、第 2 年再加 9 岁(第 2 年末合计 24 岁),第 3 年起按体型每犬年加 4/5/6 岁。
速率为什么是 4、5、6,而且随体型递增?因为大型犬的生长周期被压缩、代谢负荷更高:一头 30 kg 的犬在第 3 年已经基本长成,而 5 kg 的小型犬到 2 岁前后才收尾。同样的时间里,大型犬的骨骼、关节与心脏承受的累计负荷更大,临床上大型犬的老年起点也更早。所以换算速率不能统一成一个数——这正是「只看年龄不看体型」会出错的原因。本工具把这三个数写成 RATE 常量,改档位只改乘数,不重算锚点,因此 1 岁和 2 岁在三个档位下都必然得到 15 与 24(已用脚本逐档验证过)。
反推也做了。把分段函数解出 a,就能回答「人类 60 岁相当于犬的几岁」。以人类 40 岁(成年)、60 岁(老年起点)、80 岁(高龄)为界,反推结果:小型犬为 6.0 / 11.0 / 16.0 岁,中型犬为 5.2 / 9.2 / 13.2 岁,大型犬为 4.7 / 8.0 / 11.3 岁。卡片里的「生命阶段」与「老年起点」就是这么来的,不是拍脑袋定的阈值。
并列展示的对数公式是什么。它是 Wang 等人在 2020 年发表于 Cell Systems 的犬类表观遗传时钟研究给出的拟合式 16 × ln(a) + 31,基于 DNA 甲基化程度而不是体重。它和分档口径在成年段大致靠拢(10 岁时分别为 67.8 与中型 64),但在幼犬期严重高估:1 岁时公式给 31 岁,而分档口径是 15 岁。原因是甲基化在出生后头一年变化极快,对数曲线在这个区间被拉得很陡。因此本页把对数公式只作为对照,主结果仍用 AAHA 分档。
「×7」错在哪。它假设狗与人等比线性衰老,也就是人龄 = 7a。实际上犬的衰老曲线是「先快后慢」:1 岁就到人类 15 岁,等于头一年走了人类 15 年的路;此后每犬年只加 4~6 岁。所以 ×7 在幼犬期大幅低估(1 岁差 −8 岁、2 岁差 −10 岁),在中年段接近,到了大型犬老年段又转为低估(15 岁大型犬分档为 102,×7 只有 105 反而接近,但中型犬 15 岁分档 89、×7 为 105,高估了 16 岁)。一句话:×7 的误差方向和大小都随年龄与体型变化,不能当粗略估算用。本页把 ×7 单独列一列,就是为了让这个偏差可见。
完整示例(数值仅作演示)
示例条件与页面打开时的默认值一致:犬龄 6 岁、体型中型犬。下面把分段函数与对数公式两条路径都展开一遍,方便你核对这个狗年龄计算器给出的每个数字。
- 主结果人类等效年龄 44 岁:24 + 5 × (6 − 2) = 44;
- 同条件 ×7 结果 42 岁,比主结果低 2 岁,此时两者碰巧接近,容易让人误以为口诀是对的;
- 同条件对数公式 59.7 岁:16 × ln 6 + 31 ≈ 59.67;
- 生命阶段为成年(中型犬 5.2 岁进入成年段、9.2 岁进入老年段);
- 距进入老年还有 3.2 犬年(9.2 − 6 = 3.2)。
把体型换一档、年龄不动,结果立刻分叉:同样是 6 岁,小型犬是 40 岁、大型犬是 48 岁,跨度 8 岁——接近一只猫的整个成年期。再把年龄换成 1 岁,三档都会收敛到 15 岁,因为第 1 年的锚点与体型无关。下面这段就是把 6 岁中型犬的四个数字并排放一起看的样子,你换成别的输入会得到完全不同的组合:
| 口径 | 结果(6 岁中型犬) | 怎么算的 |
|---|---|---|
| 人类等效年龄(本工具主结果) | 44 岁 | 24 + 5 × (6 − 2) |
| 中途验算:2 岁锚点 | 24 岁 | 15 + 9,与体型无关 |
| ×7 老口诀 | 42 岁 | 7 × 6,误差 −2 岁 |
| 对数公式(表观遗传时钟) | 59.7 岁 | 16 × ln 6 + 31 |
| 生命阶段 | 成年 | 5.2 ≤ 6 < 9.2 |
| 老年起点 / 还差多久 | 9.2 岁 / 3.2 年 | 2 + 36 ÷ 5 |
体型档位、犬龄与人类等效年龄对照表
下表把 0.5~36 岁共 18 个犬龄档位逐行列出,三列分别是小型、中型、大型犬的人类等效年龄,另两列是 ×7 与对数公式的结果,方便横向比对三种口径差在哪里。表格默认显示 12 行,点「加载更多」补齐剩余 6 行。
| 犬龄 | 小型犬 | 中型犬 | 大型犬 | ×7 | 对数公式 |
|---|---|---|---|---|---|
| 0.5 岁 | 7.5 | 7.5 | 7.5 | 3.5 | 19.9 |
| 1 岁 | 15 | 15 | 15 | 7 | 31 |
| 2 岁 | 24 | 24 | 24 | 14 | 42.1 |
| 3 岁 | 28 | 29 | 30 | 21 | 48.6 |
| 4 岁 | 32 | 34 | 36 | 28 | 53.2 |
| 5 岁 | 36 | 39 | 42 | 35 | 56.8 |
| 6 岁 | 40 | 44 | 48 | 42 | 59.7 |
| 8 岁 | 48 | 54 | 60 | 56 | 64.3 |
| 10 岁 | 56 | 64 | 72 | 70 | 67.8 |
| 12 岁 | 64 | 74 | 84 | 84 | 70.8 |
| 15 岁 | 76 | 89 | 102 | 105 | 74.3 |
| 20 岁 | 96 | 114 | 132 | 140 | 78.9 |
| 22 岁 | 104 | 124 | 144 | 154 | 80.5 |
| 25 岁 | 116 | 139 | 162 | 175 | 82.5 |
| 28 岁 | 128 | 154 | 180 | 196 | 84.3 |
| 30 岁 | 136 | 164 | 192 | 210 | 85.4 |
| 33 岁 | 148 | 179 | 210 | 231 | 86.9 |
| 36 岁 | 160 | 194 | 228 | 252 | 88.3 |
第二张表是由人类等效年龄反推的犬龄阈值,也是结果卡片里「生命阶段」的判定依据。同一句「人类 60 岁」,对三档犬意味着完全不同的犬龄:
| 人类等效年龄 | 小型犬(÷4) | 中型犬(÷5) | 大型犬(÷6) |
|---|---|---|---|
| 40 岁(成年) | 6.0 岁 | 5.2 岁 | 4.7 岁 |
| 60 岁(老年起点) | 11.0 岁 | 9.2 岁 | 8.0 岁 |
| 80 岁(高龄) | 16.0 岁 | 13.2 岁 | 11.3 岁 |
输入范围、边界与精度说明
- 犬龄范围是 0.1~30 岁,保留一位小数。小于 0.1 会被拒绝:分段函数在 a ≤ 1 段是 15a,a 越接近 0 换算出的「人类月龄」越没有临床意义,而且 0.1 岁以下基本是新生犬,该看的是周龄不是年。大于 30 会被拒绝:按大型犬速率算,30 岁已经折合人类 192 岁,超出记录在案的犬类最长寿命量级(约 29~31 年),继续算只是算术游戏。
- 0.5 岁与 1 岁的边界是刻意的。a ≤ 1 时用 15a 线性插值,所以 0.5 岁 = 7.5 岁、0.1 岁 = 1.5 岁。这三个档位下 0.5 岁的结果都是 7.5,因为第 1 年的锚点不区分体型。
- 1~2 岁之间用线性插值,不是跳变。1 岁 15、2 岁 24,中间按 9 岁/年递增,所以 1.5 岁 = 19.5 岁。如果你在 1.4 岁和 1.6 岁之间来回输入,会看到结果平滑变化而不是阶跃。
- 体型档位按「成年后的体重」选,不是当前体重。一只 6 个月大、现在 8 kg 的拉布拉多幼犬,成年后大概率超过 25 kg,应该选大型犬而不是按当前的 8 kg 选小型犬。选错档位对 2 岁以上的结果影响明显:6 岁犬在小型与大型之间差 8 岁。
- 对数公式在 1 岁以下不给结果意义。16 × ln(a) + 31 在 a = 0.5 时是 19.9、a = 0.1 时是 −5.8,后者已经是负数。本工具在 a < 1 时仍显示对数公式的值,但会标注它在这个区间不可采信;主结果始终用分档模型。
- 所有结果保留一位小数。分段函数本身是线性的,运算不产生舍入误差,一位小数只是显示取舍:44 精确、44.0 与 44 等价;而对数公式含
Math.log,结果本身是浮点近似,59.7 是四舍五入后的显示值,真实值约 59.668。 - 结果是统计口径的平均值,不是个体预测。同一窝里的小型犬也可能一只活到 16 岁、一只 11 岁。品种(如大型犬中的伯恩山、金毛,小型犬中的吉娃娃、贵宾)、是否绝育、体重是否长期超标、牙齿与心脏状况都会改变实际衰老速度。
常见问题
「狗 1 岁等于人 7 岁」到底错在哪?
错在假设等比线性衰老。犬类出生后头两年走得极快:第 1 年就折合人类 15 岁,第 2 年再长 9 岁、合计 24 岁;第 3 年起才慢下来,按体型每年加 4~6 岁。×7 在 1 岁时给 7 岁、2 岁给 14 岁,分别低估了 8 岁和 10 岁;到了小型犬老年段又反过来高估。
为什么中型犬是加 5,小型犬加 4、大型犬加 6?
因为大型犬生长周期被压缩、单位体重的代谢与关节负荷更高,衰老更快;小型犬代谢率虽高但衰老进程更慢。这三个速率是 AAHA / AVMA 2019 换算表采用的档位值,本工具写成常量,只影响第 3 年起的那一段,不影响 1 岁和 2 岁的锚点。
1 岁、2 岁在三个档位下为什么结果一样?
因为前两个锚点(15 和 24)与体型无关,只有第 3 年起的斜率 r 才分档。所以 2 岁及以下的犬,换体型档位结果不变;从 2 岁往后每加一岁,小型与大型之间的差距就拉大 2 岁。
对数公式给出的年龄比主结果高很多,该信哪个?
幼犬期信分档口径。16 × ln(a) + 31 是基于 DNA 甲基化的表观遗传时钟,它在成年犬段与分档口径大致吻合(10 岁时 67.8 对 64),但出生后头一年甲基化变化极快,曲线被拉得很陡,1 岁就给 31 岁。日常使用、体检沟通都用 AAHA 分档,对数公式放在这里是为了让你知道还有另一种口径。
表格里没有我家狗的犬龄怎么办?
直接用输入框算,表格只是参考档位。分段函数接受 0.1~30 之间任意一位小数,7.4 岁这种不在表里的值一样能算。表里 12 行以外的 22、25、28、30、33、36 岁需要点「加载更多」才显示。
生命阶段和老年起点是怎么定的?
不是查表,是反推出来的。以人类等效年龄 40 岁为成年、60 岁为老年起点、80 岁为高龄,把分段函数解出犬龄:小型犬 6.0 / 11.0 / 16.0 岁,中型犬 5.2 / 9.2 / 13.2 岁,大型犬 4.7 / 8.0 / 11.3 岁。这些数随体型变化很大,所以同一句「8 岁该做老年筛查」,只对大型犬成立。
混血犬、串串犬怎么选体型档位?
按成年后的体重估。不知道成年体重时,看骨架和爪垫:爪子偏大、四肢粗壮的幼犬大概率落在中大型;也可以问繁育者或前主人亲本的大小。实在拿不准就先按中型犬算,再把小型和大型的结果当作区间两端一起看。
「×7 结果」这一列有什么用?
专门用来暴露偏差。它给出老口诀的数值,和主结果并排看,就能直观看到 1 岁差 8 岁、2 岁差 10 岁、6 岁只差 2 岁、15 岁中型犬反而高估 16 岁。误差的方向和大小都随犬龄变化,所以不能把 ×7 当成「粗略版」用——它并不单调地偏大或偏小。