安全期计算器
在浏览器本地推算安全期:输入末次月经第一天、平均周期长度与经期天数,生成未来三个月的月历,逐日标注月经期、易孕期、排卵日与安全期,并列出每个周期的对照数据。数据只在页面里计算,不上传任何服务器。
想了解自己的周期规律,日历法是最直观的方式——未来三个月的月历逐日标好颜色,哪几天是经期、哪几天受孕概率高、哪几天相对安全,一眼看清。月经数据敏感,所以推算全程发生在你自己的浏览器里,不上传服务器;至于「安全期」到底多安全,下面的说明必须先读。
重要边界:排卵日按「下次月经前 14 天」反推,黄体期固定 14 天是简化假设,周期不规律(多囊、哺乳期、围绝经期)时误差显著;安全期避孕的典型年失败率并不低,本工具标注仅供周期参考,不能作为避孕依据;想看更远月份,把末次月经改成预期周期起点再算。
这个工具解决你的问题了吗?
提交后会把工具名、你的输入与当前结果发送到服务器;请勿填写身份证号、手机号等隐私信息。
AI 助手 会结合你当前的输入与结果回答
追问会再次把当前输入与结果发送到服务器;请勿填写隐私信息。
使用步骤
- 填末次月经第一天。
- 填平均周期长度(21~40 天)与经期天数(1~10 天)。
- 看三个月月历的逐日标注与周期对照数据。
- 周期不规律先记录 3~6 个周期取平均;结果不作避孕依据。
计算原理与示例
安全期是怎么算的
日历法的口径:排卵日按「下次月经前 14 天」反推,易孕窗口为排卵日前 5 天到后 1 天,月经期为你填的经期天数,其余日子即为安全期。填好三个输入,月历立即逐日标注。
三个输入怎么填
末次月经第一天填最近一次来潮的第一天;平均周期长度填两次来潮第一天的间隔天数(21~40 天);经期长度填每次出血持续的天数(1~10 天)。拿不准就连续记录两三个周期再取平均。
月历上的颜色是什么意思
月历里红色块是月经期,橙色块是易孕窗口(含深色的排卵日),无色日子是安全期;月历下方还列了每个周期的排卵日、易孕窗口与下次月经日期,方便对照记录。
安全期真的安全吗
不一定安全。日历法本身就是估算,排卵可能提前或推后,精子在体内还能存活数天,安全期避孕的失败率并不低。本工具的标注仅供周期参考,不能作为避孕依据。
代码示例
JavaScript 安全期=易孕窗口之外(日历法)
// 日历法口径:黄体期固定 14 天 → 下次月经前 14 天为排卵日,易孕窗口取「前 5 后 1」
const DAY = 86400000;
function windowOf(lastPeriod, cycle = 28) {
const next = new Date(lastPeriod.getTime() + cycle * DAY); // 下次月经
const ovulation = new Date(next.getTime() - 14 * DAY); // 排卵日
return {
ovulation,
fertileFrom: new Date(ovulation.getTime() - 5 * DAY),
fertileTo: new Date(ovulation.getTime() + 1 * DAY),
nextPeriod: next,
};
}
// 判定:落在 [fertileFrom, fertileTo] 内为易孕期,其余为安全期(月经期本身也不安全,需单独排除)
const inFertile = (d, w) => d >= w.fertileFrom && d <= w.fertileTo;
Python 用 datetime 排一个月历
from datetime import date, timedelta
def phases(last_period, cycle=28, days=30):
ovulation = last_period + timedelta(days=cycle - 14)
fertile = (ovulation - timedelta(days=5), ovulation + timedelta(days=1))
out = []
for i in range(days):
d = last_period + timedelta(days=i)
if d == ovulation:
out.append((d, 'ovulation'))
elif fertile[0] <= d <= fertile[1]:
out.append((d, 'fertile'))
else:
out.append((d, 'safe'))
return out
# 注意:日历法只适合周期规律的人,周期波动大时误差可达数天(页面 FAQ 已说明)
常见问题
算安全期时我的数据会被上传吗?
不会。月历的全部推算都在浏览器里完成,输入的日期只留在当前页面,刷新后就没了,服务器不保存任何记录,介意隐私可以放心使用。
安全期月历和排卵期计算器有什么不同?
排卵期计算器算的是单个周期的排卵日与易孕窗口;本工具把连续三个月经周期画成月历,逐日标出月经期、易孕期、排卵日和安全期,适合想看「哪几天要留意」的人。两个工具口径一致,可以对照使用。
周期不规律还能用这个月历吗?
能算,但参考价值有限。日历法假设周期稳定,不规律时排卵日会漂移,标注仅供参考;连续记录 3~6 个周期取平均后,再回来算会靠谱一些。
经期长度应该填几天?
填你每次出血持续的天数,大多数人在 3~7 天之间。填实际值即可,月历会把这几天标成月经期;工具支持 1~10 天。
哺乳期或更年期前后能算吗?
不适合。哺乳期、围绝经期、产后恢复期以及多囊卵巢等情况排卵本来就不按规律来,日历法不适用,建议咨询医生或改用其他监测方式。
为什么只显示三个月的月历?
未来周期全靠「上次周期」外推,看得越远误差越大,三个月正好在可用范围内;想看更远的日子,把末次月经改成预期的那个周期起点再算即可。
经前安全和经后安全哪个更可靠?
都只是相对参考。经后安全期紧邻易孕窗口起点,排卵提前就失效;经前安全期受排卵推迟影响,周期短时窗口也会前移。月历把两段分开标注,就是提醒你别把整段当保险。
延伸阅读
来自本站原创文章,讲清这个工具背后的算法与口径。