Китайский алманах · лунно-солнечный календарь · знаки цикла и созвездия
Алманах дня (что делать и чего не стоит, столкновения, покровитель, стоянки, благоприятные стороны, запреты, двухчасовки и подбор даты), конвертация календарей с обратным поиском високосного месяца, быстрые таблицы знаков и годов и отсчёт до Праздника весны; данные календаря и алманаха считает в твоём браузере самохостимая библиотека lunar-javascript — в один стандарт с официальным табелем, без сети и загрузки.
公历日期 → 农历年月日、生肖、干支、大小月
支持 1900 年 ~ 2100 年。生肖与干支年按农历年(正月初一)切换,与八字命理按立春切换的口径可能不同,年初出生的人两种口径会不一样。
老黄历、农历与星座:几条最容易被搞错的常识
老黄历上的「宜」「忌」不是算出来的,是查表查出来的。通书把一年里每一天的宜忌,按「月令(当月月建,即月干支)+ 日干支」的组合事先编成表,所以同一天的宜忌是固定的几十个事项,而不是根据某个人、某件事推出来的。本页的宜忌同样来自算法库里的这张表。由此可以推出两件事:① 宜忌与「你是谁」无关——表里不含八字、不含主事人生辰,对所有人都一样;真正个性化的是合婚、择时这类需要生辰的环节,那是另一套体系,本页不做。② 同一天不同网站给出不同宜忌,最常见的原因是月令换代的流派不同:月令在交节(立春、惊蛰、清明……)时换代,一派按交节当天整日就换(通书与纸质黄历的通行口径,本页采用),另一派按交节的精确时刻换——分歧只出现在交节当天,2026 年实测 365 天里只有 12 天。本页在交节日会把两种月令都标出来,而不是替你选一个。
冲煞、值神、星宿、彭祖百忌分别是什么。「冲」是当日地支相冲的生肖(如戌日冲辰,冲龙),「煞」是当日所煞的方位;「值日」是建除十二值星(建、除、满、平、定、执、破、危、成、收、开、闭),「值神」是当日轮值的十二神,分黄道(吉)与黑道(凶);「二十八宿」是当日轮值的星宿,各有吉凶与歌诀;「吉神方位」给的是喜神、财神、福神、阳贵神、阴贵神的方位;「彭祖百忌」是干支日对应的两句禁忌口诀(如「甲不开仓」);「胎神占方」是传统上孕妇居所与动土方位的讲究;「时辰吉凶」则把一天切成十二个时辰,各按自己的时干支给出值神与宜忌——所以同一天里有的时辰吉、有的时辰凶。这些都属于传统民俗与择日体系,没有统一的国家标准,不同流派与不同版本的历书结论可能不同;本页如实呈现算法库的查表结果并标注口径,供参考,不构成任何决策建议。
择日为什么不能只看「宜」这一栏。本页的择日只做一件事:在给定区间里挑出「宜」中含你所选事项、且「忌」中不含该事项的日子。真实的择日还要看主事人生辰八字、方位、时辰,乃至家族习俗——本页明确不做这些,也不给「最吉利的那一天」这种结论,只把表里的客观事实列出来供你自己判断。
农历不是"阴历",它是阴阳合历,所以必须有闰月。农历的月份严格跟着月相走(朔为初一、望在十五前后),一个朔望月平均约 29.53 天,十二个月只有约 354 天,比回归年(约 365.24 天)少约 11 天。如果放任不管,不出几年春节就会跑到夏天去。古人的解法是让月份跟着月亮、年份跟着太阳:每 19 个回归年插入 7 个闰月(19 年 7 闰,19 个回归年 ≈ 235 个朔望月),闰月插在没有"中气"的那个月之后,所以闰四月、闰六月、闰十一月都会出现。这也解释了为什么农历生日换算成公历每年都不一样,前后能差一个多月。
大月 30 天、小月 29 天,不是固定的。农历每个月的天数取决于这个朔望月实际有多长(29.53 天上下浮动),所以哪个月是大月、哪个月是小月,年年不同,必须查历。本页的大小月直接取自天文算法库给出的每个农历月的天数,与官方历表的口径一致。这直接影响农历生日:腊月三十出生的人,遇到只有 29 天的年份就没有"三十"这一天,民间通常提前到二十九过,这也是本页在"农历转公历"里遇到不存在的日期时给出最接近合法日期的原因。
生肖和干支年有两种口径,年初出生的人会"差一个属相"。本页统一按农历年(正月初一)切换生肖与干支年:2026 年 2 月 16 日还是乙巳(蛇)年腊月廿九,2 月 17 日(正月初一)起才是丙午(马)年。但八字命理按立春切换,立春通常在 2 月 3–5 日,比春节早半个月左右,所以在"立春之后、春节之前"出生的人,两种口径会给出不同的属相与干支年;此外还有少数地区按公历 1 月 1 日切换的通俗说法。本页按农历年给结果并明确标注口径,填表、算八字这类用途请以对方要求的口径为准。
星座分界为什么每年会差一天。星座是按太阳在黄道上的位置(节气)划分的,分界点落在每年 20–23 日之间,随年份浮动:水瓶座从 1 月 20 日前后开始,摩羯座到 1 月 19 日前后结束。国际上流传的这套日期表本身就有多个版本,个别星座的起始日在不同资料里能差一天,所以"我到底是摩羯还是水瓶"这种边界日,不同网站给出不同答案并不奇怪。本页采用最通行的一套固定分界并把日期区间一起显示出来,落在分界当天时请把它当作"两套说法都说得通"来看待,而不是唯一答案;闰年 2 月 29 日按双鱼座处理(2 月 29 日在 2 月 19 日 – 3 月 20 日区间内)。
为什么这里要自己带一个天文算法库,而不是用浏览器自带的农历。现代浏览器确实内置了 ICU/CLDR 国际化数据库,标准 API Intl.DateTimeFormat 也支持 zh-CN-u-ca-chinese 这个历法扩展。但拿它和香港天文台官方「公曆與農曆日期對照表」逐日核对后发现,它并不是"总差一天",而是偶发错误:2027 年它把春节算成 02-07,官方历表是 02-06;2030 年它把春节算成 02-02,官方历表是 02-03。农历差一天就是错的(查生日、算春节、办喜事都用它),所以本页改用自托管的天文算法库 lunar-javascript(MIT 许可)在你的浏览器里现算,它的结果与官方历表一致(2027 = 02-06、2030 = 02-03、2034 = 02-19、2033 年闰十一月)。它同样不需要联网,也就同样不需要把你输入的日期交给服务器。
为什么不上传到服务器。农历换算不需要任何后端能力:算历的算法库已经随页面一起下发到你的浏览器,全部计算都在本地完成。所以本页把全部计算放在你的设备上执行,你输入的生日、婚期、任何日期都不会离开浏览器(打开开发者工具的 Network 面板可以看到整页没有任何提交请求)。页面不写 localStorage、不写 cookie、不把输入写进网址,也不读取你的姓名或手机号——你算过什么,服务器一无所知,刷新后不留痕迹。
Частые вопросы
Списки берутся из заранее составленных таблиц традиционного альманаха: по «столп-ветвь» месяца плюс дня достаётся один и тот же фиксированный набор из нескольких десятков пунктов — без учёта того, кто вы и что затеваете, и без карты рождения. Когда сайты расходятся в один день, обычно виноваты две школы смены месяца: одна переключает целыми сутками в день перехода солнечного термина (ходовая практика альманахов и бумажных календарей, её держится и страница), другая — в точную минуту перехода; они спорят только в сами дни переходов (замер на 2026 год: 12 из 365). В день перехода страница показывает прочтения месяца по обеим школам и помечает, какое использовала.
Потому что точек переключения две. Страница переключает по лунному году: до Праздника весны вы из прошлого лунного года, с самого дня Праздника начинается новый знак. Байцзы переключает на начале весны, что обычно на полмесяца раньше Праздника, — потому родившимся «после начала весны, но до Праздника» две конвенции дают разных животных. Выбирайте конвенцию под задачу; результаты здесь подписаны как по лунному году.
Лунные месяцы бывают длинными (30 дней) или короткими (29) по фактической длине лунного цикла, так что 30-е двенадцатой луны есть не каждый год. Когда в двенадцатой луне лишь 29 дней, канун приходится на 29-е (например, 5 февраля 2027 — это 29-е двенадцатой луны). При вводе несуществующей даты в «луна → григорианский» страница прямо об этом скажет и предложит ближайшую законную дату (обычно 29-е того же месяца).
Лунный год — около 354 дней, григорианский — 365: разница около 11 дней в год. Чтобы догнать Солнце, лунный календарь вставляет високосный месяц каждые два-три года (7 за 19), после вставки дата снова «отпрыгивает». Поэтому один и тот же лунный день рождения гуляет по григорианской стороне примерно с середины января до конца февраля — это нормально, не ошибка расчёта.
Лунный календарь считает саморазмещённая астрономическая библиотека lunar-javascript (MIT), согласуясь с официальными таблицами соответствия григорианского и лунного календарей Обсерватории Гонконга; благоприятное/неблагоприятное, столкновения, дежурные духи и лунные стоянки альманаха — тоже выборки из таблиц той же библиотеки. В крайних исторических или будущих годах и вокруг спорно располагаемых високосных месяцев возможны расхождения с официальными эфемеридами: для значимых применений (свадьбы, обряды, юридические документы) сверяйтесь с официально изданным альманахом, составляемым Фиолетовой горой (обсерваторией Цзыцзиньшань). Выводы альманаха — традиционный фольклор, расхождения между изданиями нормальны; страница честно показывает то, что посчитала библиотека, и подписывает конвенцию.
Страница напрямую спрашивает у библиотеки первый день первой луны того лунного года (Праздник весны) и вычитает из сегодняшнего дня счёт по календарным суткам. Если сегодня Праздник — покажет 0. Разница сравнивается по локальным календарным суткам, без миллисекундной арифметики, поэтому на неё не влияют сдвиги летнего времени вроде китайского эксперимента 1986–1991 годов.
Нет. И пересчёт луны, и выборка альманаха нуждаются только в библиотеке, приложенной к странице; все вычисления идут в браузере. Страница не отправляет ни одного запроса, не пишет localStorage, не пишет cookie и не помещает ваш ввод в URL: серверу совершенно неизвестно, какой день вы смотрели.