生活工具 · 健康育儿

怀孕周数

任意日期→当时是孕几周几天

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 55 次使用
任意日期 → 那天是孕几周几天 + 当周胎儿大小
查询日期 哪天的孕周
选任意日期,算出那天是孕几周几天(可回顾过去 / 预测未来)。默认今天。
请选择末次月经第一天
就绪 · 孕周 = (查询日 − 末次月经) ÷ 7
第一节

关于本工具

About

产检报告上写着“孕13周2天”,但翻日历算末次月经,总卡在周数边界上差一天。这个工具把任意日期转成孕周+天数,按临床通用的末次月经法推算,输入起始日就能出结果。计算全程在浏览器内完成,日期不离开本地。

使用场景

产检报告核对

孕 20 周拿到中期唐筛报告,医生在单子上手写「孕 20w+3d」,但末次月经算出来是 20w+5d。两天差异影响「临界风险」的判定标准。把 B 超日期和末次月经分别输入工具,对比两个算法得出的孕周,确认报告上的周数是按 B 超头臀长校正过的,避免因日期混淆而误判风险等级。

预产期倒推休假

公司产假政策规定「预产期前 15 天可开始休产假」,但人事要求提供精确的孕周证明。末次月经是 2023 年 8 月 10 日,按 40 周算预产期是 2024 年 5 月 16 日。用工具输入 2024 年 5 月 1 日,显示「孕 38w+2d」,正好在 15 天窗口内,据此提交休假申请,避免因日期计算误差提前或推迟休假。

旅行保险孕周确认

孕 28 周后多数航空公司要求出具适航证明,部分旅行险也限制 28 周前投保。计划孕中期出行,出发日期是 2024 年 3 月 15 日。用工具输入该日期,显示「孕 24w+3d」,确认仍在 28 周限制线以内,放心购买机票和旅行险,避免到机场被拒载或理赔时因孕周超标被拒保。

B 超单周数换算

B 超报告上写「孕 12w+5d」,但医生口头说「13 周了」。家属在群里问「到底是 12 周还是 13 周」。用工具输入 B 超检查日期和末次月经,算出精确孕周为 12 周 5 天。把结果截图发群里,说明「按末次月经是 12 周 5 天,医生说的 13 周是按 B 超头臀长校正后的近似值」,避免家属因信息不一致产生焦虑。

孕周与产检项目对齐

社区医院通知「孕 16-18 周做中期唐筛」。末次月经是 2023 年 12 月 1 日,当前日期是 2024 年 3 月 20 日。用工具输入 3 月 20 日,显示「孕 16w+1d」,正好在窗口期内。如果算出来是 15 周或 19 周,则需要调整预约时间。该工具让用户精确判断自己是否处于某项产检的推荐周数窗口,避免错过或提前做无效检查。

对比矩阵

维度本工具孕期计算器 App传统手工推算
计算方式输入任意日期,自动返回孕周 + 天数需先设置末次月经或预产期,再选日期手动数日历,易出错,需记住末次月经
输入灵活性支持任意历史或未来日期通常只允许当前或未来日期完全依赖用户记忆和手算
速度即时显示结果,无等待需加载 App、点选多个界面数分钟,且易算错
隐私纯浏览器计算,数据不上传服务器需注册或联网同步完全离线,无数据泄露
离线可用完全离线,不依赖网络部分功能需联网完全离线
平台依赖浏览器打开即用,无系统限制需安装 iOS / Android App无,但需纸笔
第二节

使用指南

Getting Started

使用步骤

  1. 1在「起始日期」输入框点按,弹出日期选择器,选任意日期(如 2024-01-15),结果区立即显示该日对应的孕周数
  2. 2在「预产期」或「末次月经」输入框(视工具界面而定)键入或选择对应日期,结果自动更新为当前孕周与天数
  3. 3点按「计算」按钮(若界面有),结果区展示「孕 X 周 Y 天」及对应孕早期/中期/晚期阶段提示
  4. 4切换日期或修改输入值,结果区实时刷新,无需重复点击计算按钮

输入输出示例

输入输出说明
2024-03-15孕 24 周 3 天常规:以末次月经第一天 2023-10-01 为基准(默认设末次月经为 280 天前),验证标准 40 周计算逻辑
2025-01-01孕 13 周 1 天常规:跨年日期,检查年份边界处理是否正确(末次月经为 2024-10-03)
2024-02-29孕 21 周 5 天边界:闰年 2 月 29 日,验证工具是否正确处理闰日(末次月经为 2023-10-04)
2023-10-01孕 0 周 0 天边界:末次月经第一天本身,输出应为 0 周 0 天,而非 1 周或负数
2024-09-30孕 52 周 1 天边界:超过 42 周(过期妊娠),检查工具是否仍输出周数(而非报错或截断)
2024-03-15孕 24 周 3 天易错:用户可能误以为输入的是预产期或受孕日,实际工具默认末次月经第一天,需明确说明
2024-03-15 14:30:00孕 24 周 3 天易错:用户输入带时间的日期,工具应忽略时间部分,仅按日期计算(避免小时分钟干扰周数)

常见错误对照

1.末次月经日期填成预产期

✗ 错误输入 2025-12-01(预产期)
✓ 修复输入 2025-03-01(末次月经第一天)

孕周计算以末次月经(LMP)为起点,预产期是 LMP + 280 天。填错起点会导致结果偏差 40 周。

2.末次月经日期晚于查询日期

✗ 错误末次月经 2025-06-01,查询日期 2025-03-15
✓ 修复末次月经 2025-03-01,查询日期 2025-06-15

末次月经必须在查询日期之前,否则结果为负周数。实际怀孕不可能在月经前发生。

3.使用受孕日代替末次月经

✗ 错误输入 2025-03-15(受孕日)
✓ 修复输入 2025-03-01(末次月经第一天)

受孕日约在排卵日(LMP + 14 天),直接填受孕日会让孕周少算约 2 周。临床统一用 LMP 为标准。

4.日期格式混用美式月日年

✗ 错误输入 03/01/2025(视为 3 月 1 日)
✓ 修复输入 2025-03-01(ISO 8601 格式)

美式 MM/DD/YYYY 与中式 DD/MM/YYYY 易混淆。工具要求 YYYY-MM-DD 避免歧义。

5.查询日期超出妊娠合理范围

✗ 错误末次月经 2025-01-01,查询日期 2025-12-31(孕 52 周)
✓ 修复查询日期控制在末次月经后 42 周内(如 2025-10-15)

足月妊娠 37-42 周,超过 42 周为过期妊娠,极少见。输入超 42 周结果虽可算但无临床意义。

6.忽略闰年 2 月 29 日

✗ 错误末次月经 2024-02-29,查询日期 2024-03-01
✓ 修复末次月经 2024-02-28 或 2024-03-01

闰年 2 月 29 日存在,但非闰年无此日。若末次月经填 2025-02-29 会被判无效。工具按公历严格校验。

7.混淆孕周与孕月

✗ 错误认为孕 4 周 = 1 个月
✓ 修复孕周直接看结果:孕 4 周 = 28 天,约 0.93 个月

孕月按 30.44 天/月(365.25/12)换算,非整 4 周。工具输出周+天,不直接输出月。

第三节

工作原理

How It Works

核心公式

孕周 = floor((当前日期 - 末次月经首日) / 7) 天

变量说明

  • 当前日期查询时的具体日期
  • 末次月经首日末次月经第一天日期
  • 孕周整数周数
  • 不足一周的剩余天数

示例

末次月经首日为 2024-08-01,当前日期 2025-01-15。间隔天数 = 167 天。孕周 = floor(167 / 7) = 23 周,剩余天数 = 167 % 7 = 6 天。结果为孕 23 周 6 天。

输入任意日期解析日期元素(年/月/日)计算与末次月经(LMP) 差值天数输出周+天校验日期合法性(闰年/月天数)计算与 LMP 差值天数(天数 ÷ 7)
用户输入 本地处理 输出结果
第四节

开发者集成

For Developers

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

from datetime import date # 输入:末次月经第一天(LMP)和任意目标日期 lmp = date(2025, 1, 1) target = date(2025, 8, 15) # 计算天数差,转换为周+天 delta = (target - lmp).days weeks = delta // 7 days = delta % 7 print(f"孕 {weeks} 周 {days} 天") # 输出:孕 32 周 1 天
// 浏览器或 Node.js 环境 const lmp = new Date('2025-01-01'); const target = new Date('2025-08-15'); const diffMs = target - lmp; const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24)); const weeks = Math.floor(diffDays / 7); const days = diffDays % 7; console.log(`孕 ${weeks} 周 ${days} 天`); // 孕 32 周 1 天
package main import ( "fmt" "time" ) func main() { lmp := time.Date(2025, 1, 1, 0, 0, 0, 0, time.UTC) target := time.Date(2025, 8, 15, 0, 0, 0, 0, time.UTC) days := int(target.Sub(lmp).Hours() / 24) weeks := days / 7 remain := days % 7 fmt.Printf("孕 %d 周 %d 天\n", weeks, remain) // 孕 32 周 1 天 }
#!/bin/bash # 需要 GNU date(Linux)或 macOS date 调整 lmp="2025-01-01" target="2025-08-15" # 转换为秒,计算天数差 lmp_sec=$(date -d "$lmp" +%s) target_sec=$(date -d "$target" +%s) diff_days=$(( (target_sec - lmp_sec) / 86400 )) weeks=$(( diff_days / 7 )) days=$(( diff_days % 7 )) echo "孕 ${weeks} 周 ${days} 天" # 孕 32 周 1 天
// 需要 Node.js 18+ const lmp = new Date('2025-01-01'); const target = new Date('2025-08-15'); const diffMs = target.getTime() - lmp.getTime(); const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24)); const weeks = Math.floor(diffDays / 7); const days = diffDays % 7; console.log(`孕 ${weeks} 周 ${days} 天`); // 孕 32 周 1 天
import java.time.LocalDate; import java.time.temporal.ChronoUnit; public class PregnancyWeeks { public static void main(String[] args) { LocalDate lmp = LocalDate.of(2025, 1, 1); LocalDate target = LocalDate.of(2025, 8, 15); long days = ChronoUnit.DAYS.between(lmp, target); long weeks = days / 7; long remain = days % 7; System.out.printf("孕 %d 周 %d 天%n", weeks, remain); // 孕 32 周 1 天 } }
第五节

常见问题

Q & A
我输入的是末次月经第一天,为什么算出来的周数和医院B超单不一样?

本工具基于固定 280 天(40 周)从末次月经推算,是临床通用的 Naegele 规则。但医院 B 超会根据胎儿实际发育(头臀长、双顶径)动态校正孕周,两者相差 1-2 周常见。如果你的月经周期不规律(<28 天或 >35 天),工具结果偏差会更大。建议以 B 超孕周为参考,本工具更适合快速估算末次月经对应的理论孕周。

只能输入末次月经吗?我忘了具体日期,只知道大概月份怎么算?

本工具只接受精确日期(年-月-日),不支持模糊输入如“2024年3月左右”。忘记末次月经时,可先用 B 超单上的孕周反推一个末次月经日期(例如 B 超显示 12 周 3 天,则末次月经约在 12 周 3 天前),再用本工具验证。或直接使用“预产期计算器”类工具,输入 B 超孕周反推。

输入日期后结果显示“0周0天”是什么意思?

表示你输入的日期等于末次月经当天,即怀孕第 0 天,通常第 1 天开始算孕 0 周 1 天。部分用户误以为当天就应显示“1周”,实际临床孕周从末次月经首日起算,第 0-6 天为 0 周。如果你输入了未来的日期,也会显示负值或 0 周 0 天,因为此时尚未怀孕。

这个工具在浏览器里算,我的末次月经日期会被上传到服务器吗?

不会。本工具是纯前端实现(FE),所有计算都在你本地浏览器内完成,没有任何日期数据离开你的设备。即使断网也能正常使用(首次加载后)。无需担心隐私泄露,适合在医院、公司等不便联网的场景使用。

为什么我输入 2024 年 1 月 1 日,算出来是 40 周整,但预产期是 10 月 7 日?

40 周整对应的是末次月经后 280 天,从 2024 年 1 月 1 日加 280 天确实是 2024 年 10 月 7 日(2024 是闰年,2 月有 29 天)。如果你预期是 10 月 8 日,可能是手动数天数时忘了闰年多一天。本工具自动处理闰年,你只需核对两个日期之间的实际天数差是否为 280 天即可。

输入日期后,能同时看到预产期吗?还是只能看周数?

本工具只输出“孕 X 周 Y 天”的结果,不会自动显示预产期。如需预产期,可手动给末次月经加 280 天(或使用站内“预产期计算器”工具)。如果你输入的是未来某个日期,结果会显示负周数,表示距离末次月经还有多少天。

我输入了正确的末次月经,但结果显示“-3周2天”,是不是工具坏了?

不是。负周数表示你输入的日期早于末次月经,即该日期时还未怀孕。例如末次月经为 2024 年 5 月 1 日,却输入 2024 年 4 月 10 日,结果就是 -3 周 2 天。请检查是否误将末次月经和查询日期填反了。本工具不会校验逻辑顺序,全靠用户自己确认输入正确。

这个工具能算到怀孕多少周为止?超过40周还显示吗?

能。本工具没有周数上限,即使输入预产期后 2 个月(如 42 周)也能正常计算并显示“42周0天”。临床上超过 42 周为过期妊娠,但工具不会自动提示异常。如果你需要快速知道是否超过 40 周,直接看结果中的周数 > 40 即可。

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

健康参考提示本工具仅供个人记录与生活参考不能代替医生诊断或专业医疗建议。如有健康疑虑或持续不适,请咨询医生或前往医院就诊。

选择 打开 +新窗口 esc关闭