生活健康 本地计算 开箱即用 内置示例 不留痕迹

安全期计算器

在浏览器本地推算安全期:输入末次月经第一天、平均周期长度与经期天数,生成未来三个月的月历,逐日标注月经期、易孕期、排卵日与安全期,并列出每个周期的对照数据。数据只在页面里计算,不上传任何服务器。

想了解自己的周期规律,日历法是最直观的方式——未来三个月的月历逐日标好颜色,哪几天是经期、哪几天受孕概率高、哪几天相对安全,一眼看清。月经数据敏感,所以推算全程发生在你自己的浏览器里,不上传服务器;至于「安全期」到底多安全,下面的说明必须先读。

重要边界:排卵日按「下次月经前 14 天」反推,黄体期固定 14 天是简化假设,周期不规律(多囊、哺乳期、围绝经期)时误差显著;安全期避孕的典型年失败率并不低,本工具标注仅供周期参考,不能作为避孕依据;想看更远月份,把末次月经改成预期周期起点再算。

使用步骤

  1. 填末次月经第一天。
  2. 填平均周期长度(21~40 天)与经期天数(1~10 天)。
  3. 看三个月月历的逐日标注与周期对照数据。
  4. 周期不规律先记录 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 天。

哺乳期或更年期前后能算吗?

不适合。哺乳期、围绝经期、产后恢复期以及多囊卵巢等情况排卵本来就不按规律来,日历法不适用,建议咨询医生或改用其他监测方式。

为什么只显示三个月的月历?

未来周期全靠「上次周期」外推,看得越远误差越大,三个月正好在可用范围内;想看更远的日子,把末次月经改成预期的那个周期起点再算即可。

经前安全和经后安全哪个更可靠?

都只是相对参考。经后安全期紧邻易孕窗口起点,排卵提前就失效;经前安全期受排卵推迟影响,周期短时窗口也会前移。月历把两段分开标注,就是提醒你别把整段当保险。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。