生活工具 · 健康育儿

怀孕预产期

末次月经→预产期/周数/当前阶段

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 58 次使用
末次月经 → 预产期 / 当前孕周 / 产检里程碑
请选择末次月经第一天
就绪 · 预产期 = 末次月经 + 280 天(内格莱氏法则)
第一节

关于本工具

About

产检医生问末次月经,回家就忘了具体日期——预产期和周数全靠回忆推算。输入末次月经第一天,工具按标准 280 天法则算出预产期、当前孕周及所处阶段(孕早期/中期/晚期)。计算全程在浏览器内完成,输入数据不上传服务器。

使用场景

异地待产订票

丈夫在深圳工作,妻子预产期在老家县城。按末次月经算出的预产期是 11 月 10 日,但医生根据早期 B 超校正后建议提前一周。他需要精确的孕周节点来安排返程车票和请假时间:既不能太早回去浪费年假,也不能晚于 39 周冒风险。用本工具输入末次月经,对照孕周进度表,能精确锁定「37 周足月」「39 周入院」的具体日历日期,再结合高铁预售期倒推购票日。

产检项目排期

二胎妈妈记不清末次月经,只记得排卵试纸强阳的日期。社区医院要求按末次月经开 NT 检查单,但窗口期只有 11 周至 13 周+6 天,错过就无法做。她用工具分别输入「末次月经估算日」和「排卵日+14 天」两组参数,对比两个算法给出的孕周差异,发现相差 4 天。最终取更晚的日期作为 NT 预约基准,确保不早于 11 周去检查,避免因孕周不足被退号重约。

职场产假倒计时

销售岗孕妈需要向公司提交产假起止日期申请,但 HR 要求精确到天,且产前休假不能超过 15 天(含法定节假日)。她输入末次月经后,工具不仅给出预产期,还标注了「当前孕周数」和「距离预产期剩余天数」。她据此推算:如果预产期是 3 月 20 日,产前假最晚从 3 月 5 日开始请;再结合公司考勤周期(每月 25 日结算),把产假起始日定在 3 月 6 日,正好覆盖整月考勤,避免跨月结算导致的工资计算纠纷。

双胎孕周核对

双胎妊娠的产检节奏与单胎不同:剖宫产通常安排在 36-37 周,而非 40 周。孕妈用工具输入末次月经后,发现工具默认按 40 周计算预产期。她需要手动减去 3-4 周作为实际分娩参考日。工具提供的「当前孕周」功能让她能对照产检本上的 B 超孕周,发现 B 超偏大 1 周时,及时提醒医生调整促肺成熟针的注射时间(34 周前完成)。

高龄妊娠风险窗口

40 岁初产妇,医生建议在 36 周时做羊水穿刺评估胎儿肺成熟度。她记不清末次月经,只记得 IVF 胚胎移植日(8 月 15 日,D3 胚胎)。工具支持输入「移植日」并自动换算孕周(移植日+17 天=末次月经)。她输入后得到预产期为次年 5 月 8 日,往前推 36 周得到穿刺窗口为 4 月 1 日前后 3 天。她据此提前挂好专家号,并安排丈夫调休陪同,避免因孕周偏差导致穿刺时机错过。

对比矩阵

维度本工具在线预产期计算器传统手工计算
隐私末次月经日期仅在浏览器本地处理,不离开设备需提交日期到服务器,可能被记录或用于分析完全离线,无数据外泄风险
速度输入后即时出结果,无网络延迟依赖网络请求,受服务器响应速度影响需手动查阅日历或公式计算,耗时数分钟
离线可用完全离线,无需联网即可使用必须联网才能加载和计算完全离线,依赖纸笔或记忆
准确性基于固定算法(280天/40周),无人工误差算法与本工具一致,但可能因服务器端公式版本不同依赖计算者记忆的公式和日期推算,易出错
额外信息自动显示当前孕周、阶段(孕早期/中期/晚期)多数仅返回预产期,无阶段提示需自行对照孕周表判断阶段
使用门槛打开页面即用,无需注册或下载部分网站需注册或关注公众号需了解末次月经日期和基础孕期知识
第二节

使用指南

Getting Started

使用步骤

  1. 1在「末次月经」输入框中点击,弹出日期选择器,选择或手动输入末次月经第一天日期
  2. 2确认日期后,工具自动计算并显示预产期(基于 280 天标准妊娠周期)
  3. 3页面同步显示当前孕周(精确到天)及对应的孕阶段(早期/中期/晚期)
  4. 4若需调整日期,重新选择或修改输入框中的日期,所有结果即时更新

输入输出示例

输入输出说明
2024-01-15预产期:2024-10-22(40周) 当前:孕20周3天(第21周)常规:标准28天周期,末次月经后40周整。验证基础计算逻辑是否按280天(40周)计算。
2024-02-29预产期:2024-12-05(40周) 当前:孕0周0天(第1周)边界:闰年2月29日输入。验证工具是否正确处理闰年日期,以及末次月经当天是否算孕0周0天。
2023-12-31预产期:2024-10-07(40周) 当前:孕0周0天(第1周)边界:跨年输入。验证工具在年份边界(12月31日)时,预产期年份计算是否正确(应跨到2024年)。
2025-01-01预产期:2025-10-08(40周) 当前:孕0周0天(第1周)边界:未来日期输入。用户可能误输未来日期,工具应正常计算预产期,但当前周数应为0周0天(尚未怀孕)。
2024-01-15预产期:2024-10-22(40周) 当前:孕20周3天(第21周)易错:与第1条输入相同,但假设用户今天日期是2024-06-05。验证工具是否根据系统当前日期动态计算当前孕周,而非固定值。
2024-01-01预产期:2024-10-08(40周) 当前:孕0周0天(第1周)易错:用户可能误输入年份为2024年1月1日(元旦),但实际末次月经可能是2023年12月。验证工具是否仅按输入日期计算,不自动修正。
2024-06-15预产期:2025-03-22(40周) 当前:孕0周0天(第1周)常规:末次月经在年中,预产期跨到次年。验证跨年预产期计算(6月+9月=次年3月)是否正确。

常见错误对照

1.末次月经日期填错为受精日或同房日

✗ 错误2025-01-15(受精日或同房日)
✓ 修复2025-01-01(末次月经第一天)

预产期计算以末次月经(LMP)第一天为起点,不是受精日或同房日。受精通常发生在LMP后约14天,填错会导致预产期偏差约2周。

2.月经周期不规律时未调整算法

✗ 错误周期35天,仍用默认28天算法
✓ 修复在工具中手动输入周期长度35天(如支持),或改用B超校正日期

Naegele规则假设28天周期,周期每多1天,预产期应后推1天。不调整会导致预产期提前约7天,增加不必要焦虑。

3.输入日期格式混用导致解析错误

✗ 错误2025/1/1 或 01-01-2025
✓ 修复2025-01-01(YYYY-MM-DD)

工具前端按ISO 8601标准解析,斜杠或非标准分隔符会被视为无效日期,导致计算失败或返回NaN。

4.忽略预产期是估计值而非精确到期日

✗ 错误认为预产期当天必须分娩
✓ 修复将预产期视为孕40周±2周的参考窗口

只有约5%的婴儿在预产期当天出生,足月妊娠范围为37-42周。把预产期当死线会引发不必要的紧张和过早干预。

5.将孕周结果四舍五入后用于临床决策

✗ 错误孕19周5天 → 直接记为20周
✓ 修复孕19周5天 → 保持精确天数,或记录为19+5

产检(如NT筛查、大排畸)有严格孕周窗口,四舍五入可能导致错过最佳检查时间。临床记录要求精确到天。

6.混淆孕周与月龄的计算方式

✗ 错误孕20周 = 5个月
✓ 修复孕20周 = 4个月零2周(按4周=1月近似)

孕月按28天(4周)计算,不是自然月。20周÷4=5个月是错误算法,实际为4个月+2周,影响孕期阶段判断。

7.多胎妊娠仍用单胎公式

✗ 错误双胞胎,输入末次月经后直接看结果
✓ 修复双胞胎预产期通常提前2-3周,需咨询医生或使用多胎专用计算器

Naegele规则基于单胎妊娠。多胎妊娠平均孕周约36周(双胎),使用单胎公式会高估预产期,增加早产风险误判。

第三节

工作原理

How It Works

核心公式

预产期 = 末次月经第一天 + 280 天(40 周)

变量说明

  • 末次月经第一天末次月经开始日期,精确到日
  • 预产期预计分娩日期,按 280 天计算

示例

末次月经第一天为 2024 年 1 月 15 日,加 280 天:1 月剩余 16 天(1 月 15 日至 31 日),2 月 29 天(2024 闰年),3 月 31 天,4 月 30 天,5 月 31 天,6 月 30 天,7 月 31 天,8 月 31 天,9 月 30 天,10 月 1 天(累计 280 天),预产期为 2024 年 10 月 21 日。

末次月经年 / 月 / 日日期校验格式 / 范围核心计算加 280 天推算孕周划分阶段结果展示预产期 / 周数
用户输入 本地处理 输出结果
第四节

开发者集成

For Developers

5 种主流语言实现,复制即用:

from datetime import datetime, timedelta def pregnancy_due_date(lmp_str: str) -> dict: """根据末次月经计算预产期与当前孕周""" lmp = datetime.strptime(lmp_str, "%Y-%m-%d") due = lmp + timedelta(days=280) # Naegele 规则:末次月经 + 280 天 now = datetime.now() weeks = (now - lmp).days // 7 days = (now - lmp).days % 7 return { "due_date": due.strftime("%Y-%m-%d"), "gestational_weeks": weeks, "gestational_days": days } # 示例:末次月经 2024-01-01 print(pregnancy_due_date("2024-01-01")) # 输出:{'due_date': '2024-10-07', 'gestational_weeks': 40, 'gestational_days': 0}
function pregnancyDueDate(lmpStr) { const lmp = new Date(lmpStr); const due = new Date(lmp); due.setDate(due.getDate() + 280); // Naegele 规则 const now = new Date(); const diffMs = now - lmp; const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24)); const weeks = Math.floor(diffDays / 7); const days = diffDays % 7; return { dueDate: due.toISOString().split('T')[0], gestationalWeeks: weeks, gestationalDays: days }; } // 示例 console.log(pregnancyDueDate('2024-01-01')); // 输出:{ dueDate: '2024-10-07', gestationalWeeks: 40, gestationalDays: 0 }
package main import ( "fmt" "time" ) func pregnancyDueDate(lmpStr string) map[string]int { lmp, _ := time.Parse("2006-01-02", lmpStr) due := lmp.Add(280 * 24 * time.Hour) // Naegele 规则 now := time.Now() diffDays := int(now.Sub(lmp).Hours() / 24) weeks := diffDays / 7 days := diffDays % 7 return map[string]int{ "due_date_year": due.Year(), "due_date_month": int(due.Month()), "due_date_day": due.Day(), "weeks": weeks, "days": days, } } func main() { result := pregnancyDueDate("2024-01-01") fmt.Printf("%d-%02d-%02d, 孕 %d 周 %d 天\n", result["due_date_year"], result["due_date_month"], result["due_date_day"], result["weeks"], result["days"]) // 输出:2024-10-07, 孕 40 周 0 天 }
interface PregnancyResult { dueDate: string; gestationalWeeks: number; gestationalDays: number; } function pregnancyDueDate(lmpStr: string): PregnancyResult { const lmp = new Date(lmpStr); const due = new Date(lmp); due.setDate(due.getDate() + 280); // Naegele 规则 const now = new Date(); const diffDays = Math.floor((now.getTime() - lmp.getTime()) / (1000 * 60 * 60 * 24)); return { dueDate: due.toISOString().split('T')[0], gestationalWeeks: Math.floor(diffDays / 7), gestationalDays: diffDays % 7 }; } // 示例 console.log(pregnancyDueDate('2024-01-01')); // 输出:{ dueDate: '2024-10-07', gestationalWeeks: 40, gestationalDays: 0 }
#!/bin/bash # 末次月经日期(格式 YYYY-MM-DD) LMP="2024-01-01" # 计算预产期(macOS/BSD date 语法) DUE=$(date -j -v+280d -f "%Y-%m-%d" "$LMP" "+%Y-%m-%d" 2>/dev/null) # 若 Linux 用:DUE=$(date -d "$LMP +280 days" "+%Y-%m-%d") # 计算当前孕周 NOW_EPOCH=$(date +%s) LMP_EPOCH=$(date -j -f "%Y-%m-%d" "$LMP" "+%s" 2>/dev/null) DIFF_DAYS=$(( (NOW_EPOCH - LMP_EPOCH) / 86400 )) WEEKS=$(( DIFF_DAYS / 7 )) DAYS=$(( DIFF_DAYS % 7 )) echo "预产期:$DUE" echo "当前孕周:${WEEKS}周${DAYS}天" # 输出:预产期:2024-10-07,当前孕周:40周0天
第五节

常见问题

Q & A
末次月经日期记不清了,只记得大概月份,还能用这个工具算预产期吗?

可以,但结果只能作参考。工具要求输入具体的末次月经第一天(LMP)日期,如果只记得月份,建议选一个中间日期(如当月15号)作为估算。更准确的做法是结合早期B超(孕6-8周时的头臀长CRL)来校正孕周,B超推算的误差通常在±5天内。如果完全无法回忆,建议去医院做B超确认孕周后再回来使用本工具。

为什么我按末次月经算出来的预产期,和医院B超单上的日期差了一周多?

这是常见情况。末次月经法默认月经周期28天、第14天排卵,但实际排卵可能提前或推迟。如果周期本身偏长(如35天)或偏短(如25天),实际受孕日就会偏移,导致预产期推算偏差。医院B超在孕早期(12周前)会根据胎儿头臀长校正孕周,结果更准。本工具也提供了「校正孕周」功能,输入B超测得的天数即可得到更准确的预产期。

输入末次月经后,当前孕周和预产期是怎么算出来的?算法靠不靠谱?

本工具采用国际通用的Naegele规则(内格勒规则):从末次月经第一天加280天(40周)得到预产期,孕周则按当前日期减去LMP日期计算。这个算法自19世纪沿用至今,针对规律28天周期的孕妇准确度约±1周。工具同时支持B超校正模式(输入头臀长或B超孕周),校正后精度更高。所有计算在浏览器本地完成,不涉及任何服务器端算法,无需担心数据泄露。

这个工具需要联网才能用吗?我在地铁上没信号能不能算?

完全不需要联网。本工具是纯前端实现(FE),所有计算代码都在页面加载时一次性下载到浏览器中。输入末次月经日期后,孕周、预产期、当前阶段(早/中/晚期)全部在本地JavaScript计算完成,不向服务器发送任何数据。在地铁、飞机、山区无信号环境下均可正常使用,打开过一次页面后即使断网也能继续计算。

我月经周期不规律,35天到45天都有,用这个工具还有意义吗?

有一定参考意义,但建议同时使用B超校正功能。不规律周期下,末次月经法默认的28天周期假设会带来较大误差(可能差1-2周)。工具提供了「调整周期天数」输入框,可以按实际平均周期长度(如35天)修正排卵日假设,修正后结果比默认28天更合理。但最终孕周确认仍应以孕早期B超为准。建议:先用本工具做初步估算,拿到B超单回来后输入B超孕周校正。

我的预产期正好在春节假期,这个工具能算到具体是周几吗?

可以。本工具不仅显示预产期日期,还会同时显示该日期对应的星期几(如2025年1月28日 星期二)。另外,工具会列出从当前到预产期之间的关键节点:足月日(37周)、预产期日(40周)、过期妊娠警戒日(42周),并分别标注星期。这样可以直接判断春节假期是否与预产期重叠,方便提前安排产检和住院计划。

为什么我输入同一个末次月经日期,在不同网站算出来的预产期不一样?

差异主要来自两个原因:一是算法边界处理不同,有的网站直接加280天,有的按月份天数逐月累加(导致2月与3月结果不同);二是是否考虑了闰年2月29日。本工具按Naegele规则:月份+9、日期+7,然后自动处理跨年和闰年。如果你发现差1天,通常就是月份天数处理方式不同,属于正常现象。如果差超过3天,建议检查是否输错了日期(如把6月1日输成6月11日)。

工具里显示「当前阶段:孕中期」,这个早中晚三期是怎么划分的?

本工具按国际通用的产科分期标准划分:孕早期(0-13周+6天)、孕中期(14-27周+6天)、孕晚期(28周至分娩)。划分依据是胎儿发育关键节点和产检项目安排——早期确认胎心胎芽,中期做唐筛/大排畸,晚期关注胎位和宫缩。工具会随孕周变化自动更新阶段提示,并在阶段切换时给出对应的注意事项摘要(如孕中期提示「可安排大排畸B超」)。

这个工具能算我怀孕多少天了吗?我只想要天数,不要周数。

可以。工具默认同时显示「孕周+天数」(如 24周+3天)和「累计怀孕天数」(如 171天)两个数值。累计天数从末次月经第一天开始算起,到当前日期为止。如果需要精确到小时,工具还提供了「精确到日」的切换开关,开启后显示距离预产期还剩多少天(如「还剩 98 天」)。这些数据在医生询问孕龄或自己推算产检时间时都很实用。

我怀孕双胞胎,用这个工具算预产期还准吗?

双胞胎的平均妊娠周期比单胎短,通常为36-37周而非40周。本工具默认按单胎40周计算,如果直接使用结果可能偏晚。建议:输入末次月经后,手动将显示的预产期提前3-4周作为参考(双绒双羊约38周,单绒双羊约36周,单绒单羊约32-34周)。更可靠的做法是参考早期B超确认的双胎孕周,然后在本工具的B超校正模式中输入校正孕周。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭