怀孕预产期
末次月经→预产期/周数/当前阶段
42 周孕期时间轴
胎儿当周大小对照
安全分娩窗口(足月 37-42 周)
国家标准产检 12 节点
当周母体变化与营养建议
| 孕期 | 叶酸 µg | 钙 mg | 铁 mg | DHA mg | 蛋白质 g | 能量 kcal |
|---|
孕期体重增长建议(IOM 2009)
宝宝出生测算
使用说明
· Naegele 公式:末次月经第一天(LMP)+ 280 天 = EDD,最常用、覆盖经期规律的孕妇
· 受孕日法:受孕日 + 266 天,适用于明确同房日 / 试管移植日的情况,准确度较高
· B 超倒推:早孕 6-12 周顶臀长(CRL)测得的孕周最准;20 周后 B 超孕周参考价值递减
· 足月范围:37-42 周分娩均属正常,仅约 5% 宝宝在预产期当天出生
· 预测局限:本结果仅供日常参考;最终孕周以产科医师 B 超核对结果为准
关于本工具
了解工具定位 · 使用场景 · 对比优势
输入末次月经第一天,自动计算预产期、当前孕周和所处孕期阶段。备孕女性、已孕妈妈、产科医生均可快速获取参考日期,辅助孕期规划。所有计算在浏览器内完成,月经日期不上传服务器。
使用场景
首次孕检排期
刚测出怀孕的准妈妈,面对末次月经日期不确定、孕周计算方式不统一的问题,容易错过 NT 检查(11-13周+6天)或唐筛窗口。本工具输入末次月经首日,自动换算当前孕周、预产期,并标注各阶段产检建议时间,帮助合理预约医院、避免超期。
工作交接规划
职场孕妈需要提前通知公司、安排产假、交接项目,但不知道具体预产期落在哪天。本工具给出精确到天的预产期,结合当前孕周倒推产假起始日,让 HR 和团队能提前 2-3 个月排班,避免临产前手忙脚乱。
月子中心预订
热门月子中心需提前 4-6 个月锁定房间,但预产期有±2 周波动。本工具输出预产期后,准父母可据此倒推参观时间、签约截止日,并预留 2 周浮动期,避免因日期偏差导致退订损失或空床位。
待产包准备
孕晚期(28 周后)需陆续采购婴儿衣物、产褥垫、吸奶器等物品,但不同孕周对应不同准备优先级。本工具根据当前孕周自动归类「已备」「待购」「不急」清单,让准妈妈在 32 周前完成核心采购,36 周前装箱,避免临产遗漏。
对比矩阵本工具 vs 竞品 vs 传统方法
| 维度 | 本工具 | 宝宝树预产期计算器 | 传统产科手册/公式 |
|---|---|---|---|
| 数据隐私 | 纯浏览器计算,无数据上传 | 需联网,数据上传至服务器 | 完全线下,无电子记录 |
| 处理速度 | 即时(<1秒) | 需加载页面及网络延迟(2-5秒) | 人工计算或翻查手册(数分钟) |
| 离线可用 | 支持(加载后断网仍可用) | 不支持(必须联网) | 支持(纸质手册) |
| 算法透明度 | 展示所用算法(如Naegele规则) | 不公开具体算法 | 明确使用Naegele规则 |
| 结果维度 | 预产期、当前孕周、孕期阶段 | 预产期、孕周、胎儿发育描述 | 仅预产期 |
| 使用门槛 | 打开即用,无注册 | 需访问网站,可能有注册提示 | 需具备医学知识或手册 |
| 平台依赖 | 任何现代浏览器 | 需特定网站或App | 纸质手册或计算尺 |
使用指南
上手步骤 · 输入输出 · 避坑提示
使用步骤
- 在「末次月经」输入框中选择或填写末次月经第一天的日期(格式:YYYY-MM-DD)
- 在「月经周期」下拉框中选取平均周期天数(默认 28 天,范围 21–45 天)
- 点击「计算预产期」按钮,页面立即显示预产期日期、当前孕周及所处孕期阶段
- 查看下方「孕期日历」表格,了解每周胎儿发育要点与检查建议
输入输出示例8 个典型场景,覆盖常规、边界与易错
| 输入 | 输出 | 说明 |
|---|---|---|
| 2024-01-01 | 预产期:2024-10-08 | 当前孕周:40周+0天 | 当前阶段:足月 | 典型常规场景:末次月经第一天 |
| 2024-06-15 | 预产期:2025-03-22 | 当前孕周:28周+3天 | 当前阶段:孕晚期 | 典型场景:孕中期末次月经输入 |
| 2024-12-31 | 预产期:2025-10-07 | 当前孕周:0周+0天 | 当前阶段:孕早期 | 边界 case:年末最后一天末次月经 |
| 2023-02-29 | 输入无效:2月29日仅闰年存在 | 易错 case:用户误输入非闰年2月29日 |
| 2024-01-01 | 预产期:2024-10-08 | 当前孕周:40周+0天 | 当前阶段:足月 | 典型场景:末次月经第一天 |
| 2024-04-01 | 预产期:2025-01-06 | 当前孕周:36周+0天 | 当前阶段:孕晚期 | 典型场景:末次月经第一天 |
| 2024-07-01 | 预产期:2025-04-07 | 当前孕周:24周+0天 | 当前阶段:孕中期 | 典型场景:末次月经第一天 |
| 2024-10-01 | 预产期:2025-07-08 | 当前孕周:12周+0天 | 当前阶段:孕早期 | 典型场景:末次月经第一天 |
常见错误对照8 个常踩的坑 · 错误 → 修复
1. 末次月经日期记成了受精日
2025-03-15(实际受精日)2025-03-01(末次月经第一天)预产期计算基于末次月经(LMP),不是同房或受精日。LMP 比受精日早约 2 周,记错会导致预产期偏差 14 天。
2. 月份用了 0 索引(1月写成 00)
2025-00-152025-01-15部分日期选择器月份从 0 开始(0=1月),但工具输入框通常要求自然月(1=1月)。混用会导致日期偏移一个月。
3. 输入了未来日期作为末次月经
2025-12-01(当前 2025-06)2025-03-01末次月经必须在当前日期之前;输入未来日期会算出负孕周或错误阶段。工具应校验日期 ≤ 今天。
4. 忘记区分农历和公历
2025-03-01(实际是农历二月初二)2025-03-01(公历)工具默认使用公历日期;若输入农历日期,预产期会偏差约 1 个月。需先转换为公历再输入。
5. 孕周计算忽略了当前时间
末次月经 2025-03-01,当前日期 2025-06-01,手工算成 12 周工具自动计算:2025-03-01 至 2025-06-01 = 13 周整孕周从 LMP 第一天开始算整周,不是从受精日算。手工计算容易忽略 LMP 当天的半天或跨月天数。
6. 预产期精确到小时
2025-12-06 14:302025-12-06预产期是 280 天后的日期,不是精确时刻。精确到小时没有临床意义,反而让用户误以为工具能预测分娩时间。
7. 把孕周和月龄混用
孕 20 周 = 5 个月孕 20 周 ≈ 4.6 个月(按 4.33 周/月)医学孕周按整周计,一个月经月 = 4 周(28 天),不是自然月 30/31 天。20 周 = 5 个月经月,但 ≈ 4.6 自然月。
8. 输入了非孕期日期(如已分娩后)
末次月经 2024-01-01,当前 2025-06-01(已分娩 1 年)工具应提示:当前日期已超过预产期 6 个月,请确认是否为当前妊娠已分娩后输入旧 LMP 会算出巨大孕周(70+ 周),无临床意义。工具应设置最大孕周上限(如 42 周)并给出警告。
工作原理
公式推导 · 流程图解 · 依据出处
核心公式
EDD = LMP + 280 天
变量说明
EDD— 预产期(Estimated Due Date)LMP— 末次月经第一天(Last Menstrual Period)
示例
末次月经第一天为 2025 年 1 月 1 日,则 EDD = 2025-01-01 + 280 天 = 2025-10-08。当前日期 2025-07-15,已怀孕 195 天,孕周 = 195 ÷ 7 ≈ 27 周 6 天,处于孕晚期。
适用范围
适用于月经周期规律(28±7 天)的孕妇,基于 Naegele 规则(1812 年提出,ACOG 推荐)。周期不规律或排卵延迟者误差较大,建议结合早期超声校正。
原理图
开发者集成
3 种主流语言 · 复制即用
from datetime import datetime, timedelta
# 输入:末次月经第一天(LMP)
lmp = datetime(2025, 1, 15)
# 预产期:LMP + 280 天(Naegele 规则)
edd = lmp + timedelta(days=280)
print(f"预产期: {edd.strftime('%Y-%m-%d')}") # 2025-10-22
# 当前孕周(假设今天是 2025-06-01)
today = datetime(2025, 6, 1)
days_pregnant = (today - lmp).days
weeks = days_pregnant // 7
days = days_pregnant % 7
print(f"当前孕周: {weeks}周{days}天") # 19周4天
# 当前阶段
if weeks < 13:
stage = "孕早期"
elif weeks < 28:
stage = "孕中期"
else:
stage = "孕晚期"
print(f"当前阶段: {stage}") # 孕中期package main
import (
"fmt"
"time"
)
func main() {
// 输入:末次月经第一天
lmp := time.Date(2025, 1, 15, 0, 0, 0, 0, time.UTC)
// 预产期:LMP + 280 天
edd := lmp.Add(280 * 24 * time.Hour)
fmt.Printf("预产期: %s\n", edd.Format("2006-01-02")) // 2025-10-22
// 当前孕周(假设今天是 2025-06-01)
today := time.Date(2025, 6, 1, 0, 0, 0, 0, time.UTC)
daysPregnant := int(today.Sub(lmp).Hours() / 24)
weeks := daysPregnant / 7
days := daysPregnant % 7
fmt.Printf("当前孕周: %d周%d天\n", weeks, days) // 19周4天
// 当前阶段
var stage string
switch {
case weeks < 13:
stage = "孕早期"
case weeks < 28:
stage = "孕中期"
default:
stage = "孕晚期"
}
fmt.Printf("当前阶段: %s\n", stage) // 孕中期
}// 输入:末次月经第一天(LMP)
const lmp = new Date(2025, 0, 15); // 月份从0开始
// 预产期:LMP + 280 天(Naegele 规则)
const edd = new Date(lmp);
edd.setDate(edd.getDate() + 280);
console.log(`预产期: ${edd.toISOString().slice(0, 10)}`); // 2025-10-22
// 当前孕周(假设今天是 2025-06-01)
const today = new Date(2025, 5, 1);
const daysPregnant = Math.floor((today - lmp) / (1000 * 60 * 60 * 24));
const weeks = Math.floor(daysPregnant / 7);
const days = daysPregnant % 7;
console.log(`当前孕周: ${weeks}周${days}天`); // 19周4天
// 当前阶段
let stage;
if (weeks < 13) {
stage = '孕早期';
} else if (weeks < 28) {
stage = '孕中期';
} else {
stage = '孕晚期';
}
console.log(`当前阶段: ${stage}`); // 孕中期常见问题
7 个高频疑问