MoonCal
  • 使用说明
  • 节日
  • 日期转换
MoonCal·面向苹果日历、Google Calendar、Outlook 和 Fastmail 的农历生日订阅日历

向我们反馈

遇到 bug、有功能建议或疑问?告诉我们,每条留言都会被认真阅读。

使用说明节日日期转换隐私政策服务条款© 2026 MoonCal
MoonCal 使用指南

什么是农历闰月? 为什么大部分日历应用都处理错了

更新 · 2026-05-19

农历一年十二个月,每月 29 或 30 天,加起来大约 354 天 —— 比公历的太阳年短 11 天。如果不修正,这种差距会让节气在历年里慢慢漂移(春节会在二十年内漂到夏天)。为了让农历和季节保持一致,农历每两到三年插入一个额外的月,称为闰月(rùnyuè)。

十九年里有七个闰月 —— 这就是默冬周期(Metonic cycle),希伯来历、佛历也基于同一套算法。闰月总是紧跟在同名常规月之后:正常的五月过完,接着是闰五月,然后才是正常的六月。

为什么这对日历应用是个难题

大部分声称支持"农历重复"的日历应用,只支持普通的农历月 —— 它们默认每年都有同样的月份。对大多数日期这没问题,但对在闰月出生的人就出问题了。最极端的例子:1990 年闰五月初八出生的人,他的真正农历生日只在那些也有闰五月的年份存在。看一下接下来几十年,有闰五月的年是 1990、2009、2028、2047、2066 —— 七十六年里只有五次。

那么 2026 年(没有闰五月)怎么过这个生日? 这是每个农历日历工具都必须回答的问题,而大多数工具都默默选了一种策略却不告诉你。

三种合理的处理策略

这件事没有放之四海皆准的答案 —— 不同家庭有不同习惯。MoonCal 在你创建闰月事件时让你三选一:

策略在没有对应闰月的年份, MoonCal 会做什么
跳过当年不生成事件,下一次会等到下一个有对应闰月的年份。
使用同名常规月使用同名的常规月(比如同样是 5 月)、同一天。这是最常见的选择 —— 很多家庭在没有闰月的年份就这么过。
使用前一个月使用前一个常规月(比如改用 4 月)、同一天。不那么常见,但有些家庭这样做。
如果不确定怎么选,"使用同名常规月"是最稳妥的默认 —— 它符合大多数中国家庭在没有闰月的年份过闰月生日的非正式习惯。

具体例子: 1990 年闰五月初八生日在 2026 年怎么过

假设有人 1990 年闰五月初八出生 —— 对应公历 1990 年 6 月 30 日。2026 年没有闰五月(2026 年的闰月是闰六月,规则上不能用作替代)。在 MoonCal 三种策略下分别是:

  • 跳过:2026 年不生成生日事件。下一次过生日在 2028 年(有闰五月)。
  • 使用同名常规月:事件落在 2026 年农历五月初八,公历 2026-06-22。
  • 使用前一个月:事件落在 2026 年农历四月初八,公历 2026-05-24。

三种都"数学上合法",看你家里到底是怎么过的。

主流日历应用都怎么处理

不点名,但我们测试过几个主流日历应用和 ICS 订阅源,大致结果是:

  • 有的应用直接把闰月事件丢掉,既不显示也不报错 —— 相当于"跳过"策略,但用户看起来就像是 bug。
  • 有的应用把闰月当成同名常规月来处理,不警告也不一致 —— 相当于"使用同名常规月",但年与年之间不统一。
  • 少数应用在非闰月年份遇到带闰月的事件时干脆添加失败。
  • 几乎没有应用允许你选择 fallback 策略,意味着从一个应用迁移到另一个应用时,生日可能默默落到不一样的日期上。

这种细节对 95% 的用户都无关紧要 —— 但如果你或你在意的人正好在那 5% 里,这就是"生日悄悄消失"和"生日落在家里习惯的那天"之间的区别。

MoonCal 怎么处理

  • 勾选"这是闰月"的事件,创建时必须选一种策略。之后还可以编辑改。
  • 未来 20 年里,MoonCal 用你选的策略算出每年的公历日期写进 ICS。
  • 如果选了"跳过",某年没有对应闰月时 ICS 里就没有这个事件 —— 你的日历应用那年正常地什么都不响,跟真实的"那年没闰月"一致。
  • 底层依赖 lunar-typescript 库,转换准确性已验证到 2200 年。

把闰月生日设置对

MoonCal 是少数几个允许你按事件配置闰月处理策略的工具。创建日历,加事件,选策略 —— 未来二十年都准了。

免费创建日历

相关指南

在 Apple Calendar 添加农历生日的完整教程(macOS + iOS)

Apple Calendar 不支持按农历重复事件,直接加成公历重复每年都会偏。用 ICS 订阅可以两分钟搞定,macOS 和 iPhone 步骤齐全,含岁数显示和提醒配置。

查看指南

如何把农历生日添加到 Google 日历

Google 日历的「每年重复」按公历计算,农历生日设成每年重复会一年比一年偏。本文教你用 ICS 订阅正确添加农历生日,并让它每年自动更新——电脑端和手机端步骤都有。

查看指南

给家人的农历生日提醒

爸妈、爷爷奶奶常常过农历生日,而农历生日每年都在变,特别容易忘。本文教你在已经用的日历应用里设好提醒——设一次,一直管用。

查看指南