产检报告核对
孕 20 周拿到中期唐筛报告,医生在单子上手写「孕 20w+3d」,但末次月经算出来是 20w+5d。两天差异影响「临界风险」的判定标准。把 B 超日期和末次月经分别输入工具,对比两个算法得出的孕周,确认报告上的周数是按 B 超头臀长校正过的,避免因日期混淆而误判风险等级。
产检报告上写着“孕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 超报告上写「孕 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 | 无,但需纸笔 |
| 输入 | 输出 | 说明 |
|---|---|---|
| 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 周。工具输出周+天,不直接输出月。
孕周 = floor((当前日期 - 末次月经首日) / 7) 天
当前日期查询时的具体日期末次月经首日末次月经第一天日期孕周整数周数天不足一周的剩余天数末次月经首日为 2024-08-01,当前日期 2025-01-15。间隔天数 = 167 天。孕周 = floor(167 / 7) = 23 周,剩余天数 = 167 % 7 = 6 天。结果为孕 23 周 6 天。
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 天
}
}本工具基于固定 280 天(40 周)从末次月经推算,是临床通用的 Naegele 规则。但医院 B 超会根据胎儿实际发育(头臀长、双顶径)动态校正孕周,两者相差 1-2 周常见。如果你的月经周期不规律(<28 天或 >35 天),工具结果偏差会更大。建议以 B 超孕周为参考,本工具更适合快速估算末次月经对应的理论孕周。
本工具只接受精确日期(年-月-日),不支持模糊输入如“2024年3月左右”。忘记末次月经时,可先用 B 超单上的孕周反推一个末次月经日期(例如 B 超显示 12 周 3 天,则末次月经约在 12 周 3 天前),再用本工具验证。或直接使用“预产期计算器”类工具,输入 B 超孕周反推。
表示你输入的日期等于末次月经当天,即怀孕第 0 天,通常第 1 天开始算孕 0 周 1 天。部分用户误以为当天就应显示“1周”,实际临床孕周从末次月经首日起算,第 0-6 天为 0 周。如果你输入了未来的日期,也会显示负值或 0 周 0 天,因为此时尚未怀孕。
不会。本工具是纯前端实现(FE),所有计算都在你本地浏览器内完成,没有任何日期数据离开你的设备。即使断网也能正常使用(首次加载后)。无需担心隐私泄露,适合在医院、公司等不便联网的场景使用。
40 周整对应的是末次月经后 280 天,从 2024 年 1 月 1 日加 280 天确实是 2024 年 10 月 7 日(2024 是闰年,2 月有 29 天)。如果你预期是 10 月 8 日,可能是手动数天数时忘了闰年多一天。本工具自动处理闰年,你只需核对两个日期之间的实际天数差是否为 280 天即可。
本工具只输出“孕 X 周 Y 天”的结果,不会自动显示预产期。如需预产期,可手动给末次月经加 280 天(或使用站内“预产期计算器”工具)。如果你输入的是未来某个日期,结果会显示负周数,表示距离末次月经还有多少天。
不是。负周数表示你输入的日期早于末次月经,即该日期时还未怀孕。例如末次月经为 2024 年 5 月 1 日,却输入 2024 年 4 月 10 日,结果就是 -3 周 2 天。请检查是否误将末次月经和查询日期填反了。本工具不会校验逻辑顺序,全靠用户自己确认输入正确。
能。本工具没有周数上限,即使输入预产期后 2 个月(如 42 周)也能正常计算并显示“42周0天”。临床上超过 42 周为过期妊娠,但工具不会自动提示异常。如果你需要快速知道是否超过 40 周,直接看结果中的周数 > 40 即可。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。
健康参考提示本工具仅供个人记录与生活参考,不能代替医生诊断或专业医疗建议。如有健康疑虑或持续不适,请咨询医生或前往医院就诊。