Lunar Calendar Converter
Convert between Gregorian and Chinese lunar dates, including leap months, the zodiac animal and the sexagenary year name, for any date from 1900 to 2099.
About this tool
The Chinese lunar calendar is a calendar of new moons. A month begins on the day of the astronomical new moon as seen from China, so a month is 29 or 30 days long and never anything else. Twelve such months come to about 354 days, roughly 11 days short of the tropical year. Left alone, the calendar would drift backwards through the seasons by a month every three years, and the new year would eventually fall in autumn. The leap month exists to stop that drift.
A leap year carries 13 months instead of 12 and runs to 383, 384 or 385 days, while an ordinary year runs to 353, 354 or 355. In the two centuries this tool covers, 1900 to 2099, there are 74 leap years out of 200. The leap month is inserted by a rule rather than a fixed schedule, and the rule produces an uneven pattern: across that range there are 14 leap fourth months and 14 leap fifth months, but only one each of leap ninth, tenth and eleventh, and no leap first or leap twelfth month at all.
Chinese New Year is day 1 of month 1, and because the lunar year is shorter than the solar one it moves around: across 1900 to 2099 the earliest is 21 January (1966) and the latest is 20 February (1920). The zodiac animal and the stem-branch name belong to the lunar year, not the Gregorian one, so the boundary is New Year rather than 1 January. Anyone born in the first weeks of a Gregorian year usually carries the previous year animal. On 1 January 2024, for example, the lunar date is still day 20 of month 11 of 2023, so the animal is the rabbit, not the dragon.
How the calendar decides which month to repeat
The leap month is normally the first month of the year that contains no major solar term. That keeps the calendar tied to the seasons without a fixed schedule.
A solar year is divided into 24 terms, and twelve of them are major terms, roughly one per month of the sun. Because a lunar month is about 29.5 days and the gap between two major terms is about 30.4 days, a month will now and then slip past a major term entirely. That month has no anchor to the seasons, so it is declared the leap month and the numbering repeats. The rule has been in use since the seventeenth century and is what produces patterns like a leap fourth month in one year and a leap eighth month a few years later.
The old shorthand for this is the Metonic cycle: seven leap months in nineteen years. It is close enough to be useful and wrong enough to be visible. Nineteen solar years are about 6,939.6 days and 235 lunar months are about 6,939.7, so the two nearly agree, which is why the new year stays in its window. But over the 200 years here the count is 74 leap years, not the 73.7 the cycle predicts, and the cycle says nothing about which month is repeated. The actual month comes from the solar terms, not from arithmetic on the year number.
Two recent examples make the rule concrete. The lunar year 2023 has a leap second month, which begins on 22 March 2023; the lunar year 2025 has a leap sixth month, which begins on 25 July 2025. In both cases the repeated month follows the ordinary month of the same number and lasts 29 days, and in both cases a person reading only the month number would be off by one month for the rest of the year. That is the failure mode this tool is built to avoid.
Why the animal changes in January or February
The zodiac animal is a property of the lunar year. The lunar year starts at Chinese New Year, somewhere between 21 January and 20 February, so 1 January is the wrong boundary.
It is a common mistake to assign the animal from the Gregorian year, and it produces a wrong answer for everyone born in the first six weeks of the year. On 1 January 2024 the lunar date is day 20 of month 11 of the lunar year 2023, so that day belongs to the rabbit, not the dragon. The dragon only begins on 10 February 2024, which is day 1 of month 1. Any conversion that ignores the new year boundary will be wrong for exactly those weeks and right the rest of the time, which makes the error hard to notice.
The stem-branch pair moves on the same boundary, because it is also a lunar year label. Ten stems and twelve branches combine into sixty names, and the animal is simply the branch in its everyday form: Zi is the rat, Wu is the horse. Because the two cycles have lengths 10 and 12, their least common multiple is 60, which is why the full name repeats every sixty years and why naming a year by its stem-branch alone is ambiguous without a century.
One caveat is worth stating plainly. Chinese astrology has a second tradition that switches the animal at the start of spring, one of the solar terms, which falls around 4 February. For a person born between Chinese New Year and that date, the two systems give different animals. This tool follows the calendar used for public holidays, so it switches on day 1 of month 1, and it will disagree with a fortune-telling chart for those few days.
The zodiac changes on the day of the Spring Festival
On 2026-02-16 it is still the year of the snake; on 2026-02-17, the first day of the first lunar month, it becomes the year of the horse. The lunar year does not begin on 1 January, so looking the zodiac up by calendar year is wrong for a whole year.
The conversion cannot guess from the calendar year. The implementation starts with a provisional lunar year derived from the Gregorian year and then steps back or forward using the real date of the Spring Festival, because one lunar year spans two Gregorian years — reading only the year must fail in the first weeks of January and February.
For 2026 specifically: the first day of the first month is 17 February, the previous day still belongs to the snake, and the horse begins there. A birthday falling on one or the other differs by one animal.
Lunar years are not equal in length either: the 2026 lunar year has 354 days and the next Spring Festival is 2027-02-06. A year with a leap month runs to roughly 383 days, which is why the first day of the first month drifts between 21 January and 20 February.
The page therefore accepts Gregorian dates only and converts against the real table, with no shortcut for deriving the zodiac from a year number — that shortcut is exactly where the errors come from. The month table is stored as a bit mask (which months have 30 days, which month is the leap one), and the positions have to line up with the mask, since one off-by-one shifts the whole year.
The table ends in the middle of a Gregorian year, not at its edge
1900-01-01 is rejected even though 1900 is the first year in the table, because that date still belongs to lunar 1899. Both boundaries are drawn by the lunar year.
The refusal comes with the reason attached: the lunar new year of 1900 fell on 31 January, so every date before that belongs to the previous lunar year, which the table does not carry. A table starting at 1900 simply cannot answer for January 1900, and saying so is better than returning a plausible wrong month.
The far end behaves the opposite way. 2100-01-15 converts without complaint, to lunar 2099, month 12, day 6. The Gregorian year is past the last entry but the lunar year it maps into is not, so there is nothing to refuse.
The implementation therefore pulls the Gregorian year back to the last entry before looking up the new-year date, instead of rejecting anything beyond it. One rule produces both edges: what matters is which lunar year the date lands in, and that is the only definition that stays consistent when the two calendars overlap.
Frequently asked questions
Why does Chinese New Year fall on a different date every year?
Because it is tied to the moon, not to the sun. Day 1 of month 1 is the day of a new moon, and twelve lunar months add up to about 354 days, eleven short of a solar year. If nothing were done, the holiday would walk backwards through the seasons. The leap month pulls it back, which is why the date stays inside a window of about a month, from 21 January to 20 February, instead of drifting.
What exactly is a leap month, and why is it called a second sixth month?
A leap month is a duplicate of the month before it, inserted in the middle of the year. It takes the number of the month it follows, so a leap sixth month comes straight after the ordinary sixth month and is written as such, not as a seventh month. That is why the count of months in a leap year is 13 while the numbering still only goes up to 12, and why a lunar date is ambiguous unless the leap flag is recorded with it. This tool shows the flag and refuses a leap month in a year that does not have one.
Why is my zodiac animal not the one I expected?
Because the animal changes at Chinese New Year, not on 1 January. If you were born in January or early February, the lunar year had not yet turned, so you belong to the previous animal. There is a second, unrelated boundary in Chinese astrology: systems based on solar terms switch the animal at the start of spring, around 4 February, which can disagree with the lunar new year by a couple of weeks. This tool follows the calendar, so it switches at day 1 of month 1.
What is the stem-branch name, and why does it repeat every 60 years?
It comes from two cycles running at once: ten heavenly stems and twelve earthly branches. Pairing them gives sixty combinations before the pattern repeats, which is why a full cycle is sixty years and why the name alone does not identify a year. 2026 is Bing Wu, the horse year; 2027 is Ding Wei. The same pair returns in 2086. The system is independent of the animal, which is just the branch in everyday form.
How reliable is the data, and what happens outside the range?
The table covers lunar years 1900 to 2099 and was generated from a standard lunar calendar implementation, then checked day by day against it for the whole range, which is about 73,000 days. Outside that window the tool refuses rather than extrapolating, because the boundary of a lunar year depends on astronomical new moons that cannot be predicted from a table. If you need a date in 2100 or later, the honest answer is that this tool does not know it.
Related tools
Your whole life as one square per week: weeks lived, weeks left and the share already used, from any birth date and any life expectancy.
Convert a date and time across time zones, with correct daylight-saving handling — including wall-clock times that do not exist on that date.