Chinese Perpetual Calendar (萬年曆)

Share:

Chinese perpetual calendar (萬年曆). Browse any month from 1901-2100 in a Gregorian + lunar grid; navigate with ◀▶ or the year/month selectors. Each cell shows the Gregorian day, lunar day (lunar month name on 初一), and 节气/festival markers. Tap a day for the full almanac: lunar date, stem-branch, zodiac, 宜/忌, clash, 煞, 建除, 廿八宿, solar term, festivals.

RT-CHN-094 · Chinese Culture & Almanac
Your browser is too old for this tool’s interactive features. Please update to Safari 13.1, Chrome or Edge 80, Firefox 74 or newer.

Chinese Perpetual Calendar (萬年曆)

📅 The lunar dates, solar terms and 干支 are checked day by day against the Hong Kong Observatory's 1901–2100 tables. The 宜/忌 come from the vendored 通書 (the open-source 6tail library); published paper almanacs may differ slightly — that is normal. 宜/忌 are folk-tradition reference, not date-selection, legal, medical, or financial advice.
📅 Research current as of 19 Oct 2026 · Sources: Hong Kong Observatory 公曆與農曆對照表 1901–2100 (every day compared), its 二十四節氣 times and its note on the 正月初一 year boundary; 宜忌 from the vendored 6tail lunar-javascript tables.
Standards, published formulas, and reference data are revised over time — check against a current authoritative source before relying on these figures.
Advertisement
After results · AD-W1 Responsive

How to use

Browse a month

The calendar opens on the current month. Use ◀ / ▶ to step to the previous or next month, or jump straight to any month from 1901-2100 with the Year and Month dropdowns. "Back to today" returns to the current month anytime.

Read a day cell

Each cell shows the Gregorian day (large) with the lunar day beneath it. On lunar 初一 the cell shows the lunar month name (e.g. 五月) so you can see exactly where the lunar month changes over. Sundays and Saturdays are tinted amber.

Spot solar-term + festival markers

If a day is one of the 24 solar terms, a green tag appears (e.g. 夏至 Summer Solstice); a traditional festival shows a red tag. Most days have neither — blank is normal.

Open a day's almanac

Tap any day and the detail panel below expands that day's full 老黃曆: Gregorian + lunar date, year/month/day stem-branch, zodiac, plus 宜 (do), 忌 (avoid), clash, 煞, 建除, 廿八宿 (with luck), fetus-spirit, nine-star, solar term, and festivals. On a 节 day the 干支 month changes at the term's minute, and the panel gives that time. Everything is computed locally in your browser.

The Chinese Perpetual Calendar (萬年曆): A Browsable Lunisolar Almanac

A 萬年曆 ("ten-thousand-year calendar") does not literally span ten thousand years — the phrase is a Chinese idiom for a general-purpose almanac you can page through to look up any year and month. Unlike a single-date converter, it lays a whole month out as a grid so you can see, at a glance, every day's Gregorian date, its lunar date, which days are solar terms, and which fall on traditional festivals. This tool reproduces exactly that form: it opens on the current month, lets you flip with ◀ / ▶ or jump anywhere with the Year and Month dropdowns, and covers the two centuries from 1901 to 2100, the span of the Hong Kong Observatory's Gregorian-Lunar conversion tables, against which every day here has been checked. Every calculation runs locally in your browser — no network calls, no model.

What makes a perpetual calendar so useful is that it shows "the calendar of the sun" and "the calendar of the moon" side by side. The Gregorian calendar is purely solar, so its dates line up with the seasons. The Chinese lunar calendar is lunisolar: its months follow the phases of the moon, while leap months and the 24 solar terms quietly pull the sun's pace back into step. When a cell shows the lunar month name on 初一 (the first lunar day, e.g. 五月 "fifth month"), you are literally seeing a new moon — the first day of each lunar month is the day of the new moon. Stacking both systems on one grid makes it intuitive why Chinese New Year, Dragon Boat, and Mid-Autumn land on different Gregorian dates each year, and lets you answer questions like "when is Qingming next year?" in a glance.

Solar terms, festivals, and the daily almanac

This calendar embeds two kinds of marker into each cell. Green tags are the 24 solar terms — Start of Spring, Spring Equinox, Summer Solstice, White Dew, Winter Solstice and so on. These are fixed points on Earth's orbit around the sun, the genuinely astronomical component of the lunar calendar, and there are exactly 24 of them a year. Red tags are traditional festivals such as Chinese New Year, Lantern, Dragon Boat, Qixi, Ghost Festival, Mid-Autumn, Double Ninth, and Winter Solstice, whose dates are fixed by the lunar calendar. Tap any day and the detail panel expands that day's complete 老黃曆: year and day stem-branch, zodiac, 宜 (activities to do), 忌 (activities to avoid), the day's clashing zodiac sign and inauspicious direction, the 建除 twelve day-officers, the 廿八宿 lunar mansion with its luck reading, the fetus-spirit position, and the day and year nine-star. The 建除 officers, the 廿八宿 mansions and the clash directions all appear in the Qing court's 《欽定協紀辨方書》; the 宜/忌 tables this page uses come from the open-source 6tail library and have not been checked against that book entry by entry.

"To harmonise the reckoning and distinguish the directions is to revere heaven's order and earth's quarters." Qianlong Emperor, preface to the 欽定協紀辨方書 (1741–42), Wikisource, Siku Quanshu text (our translation of 「協紀辨方者,敬天之紀,敬地之方也」)

Cultural stance + disclaimer

A perpetual calendar is a calendrical tool, and its most reliable parts — Gregorian dates, lunar conversion, the 24 solar terms, zodiac and stem-branch — are computed from astronomical formulae and checked day by day against the Hong Kong Observatory's tables: of 73,049 days from 1901 to 2100 only the 30 days of the fourth lunar month of 1906 differ, because its new moon fell 7 minutes 49 seconds before midnight. You can rely on them for checking festivals, cross-referencing birthdays and planning trips. But the 宜忌 and 神煞 you see after tapping a day are a different matter: they are folk tradition with no scientific basis, and different almanacs routinely disagree on the same day's do-and-avoid lists. This tool uses an embedded open-source 通書 algorithm (the 6tail implementation), so its output may differ slightly from a paper almanac on your shelf — that is normal, because date-selection has many competing schools and no single authoritative answer. Treat the calendar as a handy calendrical reference and cultural cross-check; for real-life milestones — weddings, business openings, moving house — rely on practical conditions, professional advice, and family coordination rather than any single day's 宜忌. RECATOOLS applies zero-tracking and zero-storage to every date you enter: all computation stays on your own device.

Advertisement
After how-to · AD-W2 Responsive

The Qing court called it a 萬年書, and admitted the almanacs disagreed

01

萬年曆 ("ten-thousand-year calendar") is hyperbole for "an almanac for any year and month". In the Qing court it was the 萬年書: the head of the Imperial Astronomical Bureau petitioned to "revise the 選擇通書 and the 萬年書", a memorial printed at the front of the 欽定協紀辨方書.

02

Almanacs disagreeing about 宜/忌 is not new. The Qianlong Emperor's preface to the 協紀辨方書 quotes Chu Shaosun's addition to the Shiji, "one school calls it lucky, another calls it unlucky", and says the old almanac had "carried its errors forward", which is why he ordered it recompiled.

03

The first day of every lunar month (初一) is the day, at UTC+8, that contains the instant of the new moon. That is why the grid prints the month name on 初一: you are looking at the moon resetting.

04

The 24 solar terms are set every 15° of the sun's ecliptic longitude, independent of the moon, so they barely move on the Gregorian calendar: in HKO's tables the winter solstice falls between 21 and 23 December every year from 1901 to 2100.

05

"Seven leap months in nineteen years" is only an average. HKO's tables hold 73 leap months between 1901 and 2100, all in months 2 to 11; leap 4th and 5th months are the commonest (14 each), and a leap 11th month comes once, in 2033.

06

HKO's conversion-table page warns that a new moon or solar term close to midnight can put its table a day out, and names three new moons including 28 September 2057. This grid marks such 初一 cells with a small asterisk, explained when you tap the day.

07

The zodiac changes with the lunar year: HKO changes the year's 干支 at 00:00 Hong Kong time on 正月初一. A baby born in January before Chinese New Year carries the previous year's animal. Bazi turns the year at 立春 instead, and the panel shows both when they differ.

08

The imperial preface of the 協紀辨方書 is dated the full-moon day of the twelfth month of Qianlong 6, which falls in early 1742. The 宜/忌 tables on this page come from the open-source 6tail library and have not been checked against that book entry by entry.

09

立春 is not always in the first month: in 103 of HKO's 200 years it falls in the twelfth. In 2026 it fell on 4 February, the 17th of the twelfth month, with Chinese New Year on 17 February.

10

ASEAN Chinese communities still page through perpetual calendars to find festivals: Hong Kong's 通勝 and the lunar desk calendars of Singapore and Malaysia share the tradition. Singapore, Malaysia and Hong Kong are all on UTC+8, so their lunar dates are the ones this grid shows.

Frequently Asked Questions

  • No — "ten-thousand" is hyperbole for "a general almanac you can page through". This tool supports 1901-2100 (200 years), the span of the Hong Kong Observatory's conversion tables. Outside it there is no official table to check against, so the tool does not offer those years rather than show unchecked dates.

  • The converter looks up one date at a time; the perpetual calendar lays a whole month out as a grid you can page through — seeing every day's lunar date, solar terms, and festivals at once, then tapping any day for the full almanac. One is lookup; this is browse.

  • The first day of each lunar month is 初一, the new moon. To show where the lunar month rolls over, the calendar prints the lunar month name on 初一 cells (e.g. 五月) instead of "初一"; other days show the lunar day (初十, 廿二, etc.).

  • There are only 24 solar terms a year and festivals fall on specific days, so for most dates a cell genuinely has neither — blank is normal. A green or red tag only appears when that exact day is a solar term or festival.

  • The 宜忌 are folk tradition with no scientific basis — a long-lived custom, but "which day is good for what" has never been shown to work. This tool does not endorse their validity; they're for cultural + entertainment reference only.

  • Because date-selection has multiple schools that weigh the 神煞 differently, almanacs routinely disagree on a given day. This tool uses an embedded open-source 通書 algorithm (6tail), so it may differ slightly from some printed almanacs — that's normal, and there's no single correct answer.

  • Use the Year and Month dropdowns in the control bar — the grid jumps to that month instantly. You can also step month-by-month with ◀ / ▶, or click "Back to today" to return to the current month (the Singapore day). Range: 1901-2100.

  • UTC+8, the time the Hong Kong Observatory computes its tables in (Beijing local mean time before 1929). Mainland China, Hong Kong, Taiwan, Singapore and Malaysia are all on UTC+8, so their lunar dates agree. Even if you're in Europe or the US, the lunar dates, solar terms and festivals shown are at UTC+8, and "Back to today" uses the Singapore day.

  • The content is identical; only the script differs. In Traditional (zh-TW) mode the 宜忌, solar-term, zodiac, and 神煞 terms convert automatically to Traditional characters (e.g. 沖 not 冲, 穀雨 not 谷雨) for readers in Hong Kong, Taiwan, and overseas.

  • No. All calendar and almanac computation runs locally in your browser — no network requests, no model calls. RECATOOLS enforces zero-tracking + zero-storage for these inputs.

Method & sources

How it computes

Each month is built by LunarDateViewsKernel on LunisolarKernel: lunar dates from computed new moons (Meeus ch. 49) and solar terms (the Sun's apparent longitude), leap months by the no-major-term rule, day boundary UTC+8; 干支 from 立春 and each 节. Every day 1901-2100 checked against HKO's tables. The 宜/忌, 建除, 廿八宿, 沖煞, 彭祖, 胎神 and 九星 rows are the vendored 6tail 通書 tables, keyed by the day's 干支.

What this tool implements

  • The Chinese calendar is lunisolar: each month starts on the day of a new moon, and the months are numbered by the sun, with a month that holds no major solar term repeated as the leap month. The grid computes this rather than reading a packed table.
  • Validated against the Hong Kong Observatory's 公曆與農曆對照表, all 200 yearly files 1901-2100, through the grid itself: of the 73,030 days from 1901-01-20 to 2100-12-31 every one agrees except the 30 days of 1906 四月 (new moon 7m49s before midnight); solar-term dates agree for every year from 1914.
  • The twenty-four 節氣 are marked where they fall. They are solar, not lunar — they track the sun's ecliptic longitude in 15° steps — which is why they sit at almost the same Gregorian date each year while the lunar dates around them move.
  • Both calendars are shown on the same cell rather than in separate views, because the whole purpose of a 萬年曆 is reading one against the other.
  • Two year boundaries: the lunar year and its animal turn at 正月初一 (HKO's rule for its own tables); the 干支 year and months at 立春 and each 节, with the day's change time shown on a 节 day.
  • 宜/忌 and the other 通書 rows are folk reference from the vendored 6tail tables, labelled as such; they are not checked against the 欽定協紀辨方書 entry by entry and the page says so. Month starts within 15 minutes of midnight are marked, as HKO flags 2057-09-28, 2089-09-04 and 2097-08-07.

Sources

What can make this go out of date

  • None at runtime: the kernels and the vendored 通書 tables run in the browser, and nothing about the dates you browse leaves it.

Abridged — the full review record for this tool runs longer than the list above.

Advertisement
Pre-footer · AD-W3 728 × 90