Lunar Calendar Converter
Convert between solar (Gregorian) and East Asian lunisolar calendar dates. Returns zodiac animal and ganzhi (heavenly-stem/earthly-branch) year name.
Based on the standard Korean/Chinese lunisolar table. Range: 1900-01-31 to 2099-12-30.
How to use
- Solar → Lunar: pick any Gregorian date from 1900-01-31 to 2099-12-31 to see the lunar equivalent.
- Lunar → Solar: enter year, month, day. Check the leap month box only if the lunar month was a duplicated (leap) month that year.
- The zodiac and ganzhi outputs help with traditional age calculation (만 나이 / 한국 나이 / 띠).
About this tool
ShowHide
Convert a solar date to the Korean, Chinese and Vietnamese lunisolar date and back, with the leap month handled in both directions and the sexagenary stem-branch year name and its animal alongside. The range is 1900-01-31 to 2099-12-31, which is what the underlying table covers.
The awkward part of a lunisolar calendar is that it is not computed, it is tabulated. Each month begins on the day of a new moon, so months run 29 or 30 days in no fixed pattern, and a thirteenth month is inserted often enough to keep the year in step with the seasons — 74 times in the two centuries covered here. A lunar year is therefore anywhere from 353 to 385 days long, and a leap month repeats the number of the month before it rather than getting a name of its own.
Because it is a table, its errors travel by being copied. The version that circulates in tutorials and libraries has three entries this one does not follow. For 2033 it places a leap 7th month where the astronomical calendar has a leap 11th — the 윤달 동짓달 — five months early, which renumbers every month across the 148 days from 2033-08-25 to 2034-01-19; the correction keeps the year at 384 days, so nothing after it shifts. For 1996 it gives months 5 through 8 as 29, 30, 29, 30 where both references followed here say 30, 29, 30, 29, and the visible consequence was public: Chuseok 1996 is on record as 27 September and the copied table made it a day late. For 2060 it swaps the third and fourth months the same way.
Where the Korean and Chinese calendars genuinely disagree, they disagree for a real reason rather than a copying one: the new moon is an instant, and an instant near midnight falls on different dates either side of the meridian. Those cases are differences between the two traditions, not bugs. Conversions here are checked against both a Chinese implementation and a KASI-derived one.
Frequently asked questions
What's a leap month?
The lunisolar calendar has 12 months totaling ~354 days, which drifts ~11 days per solar year. To realign, an extra (leap) month is inserted roughly every 2-3 years — about 7 times every 19 years. The leap month is named after the month it follows (윤4월 = 'leap April'). Only one specific year-month pair can be leap.
Why limit to 1900-2099?
Lunar calendar dates aren't derivable from a simple formula — they depend on astronomical calculation of each new moon. Widely used tables cover 1900-2100; in Korea the official calendar is the one published by the Korea Astronomy and Space Science Institute. Beyond this range, dates are predictions that may differ slightly from official almanacs when published.
Why does the same lunar date fall on different days in China, Korea and Vietnam?
Because the calendar is calculated from astronomical events — the new moon and the solar terms — timed in a national reference zone. When a new moon falls near midnight, one country places it on a different civil day than another, which shifts the whole month and can move a festival by a day. Historical tables also differ, so a date far in the past may not match a source computed elsewhere.
How should a lunar birthday be stored in a system?
Store the lunar date as its own value, along with whether it fell in a leap month, and convert to a solar date when you need to schedule something. Storing only the converted solar date loses the original intent, and a leap-month birthday has no solar equivalent in most years — the policy for which month it moves to is a human decision your data has to record rather than derive.
Related tools
Moon Phase Calculator (Illumination, Age, Next Full/New)
Pick any date and get the lunar phase name, illumination percentage, age in days, an SVG of the current shape, and the next new and full moon dates.
Time
Calendar Heatmap from Date List
Paste a list of YYYY-MM-DD dates (with optional counts) and render a GitHub-style yearly heatmap — palette, week start, streaks, hover counts.
Time
ISO 8601 Week Calculator
Convert any date to its ISO week number (and back) — get the Monday-start / Sunday-end of that week, ISO year, day-of-year, and how many weeks the year has.
Time
Day of Year · ISO Week · Julian Day
Show day of year, ISO 8601 week, quarter, Julian day, Unix timestamp, leap-year status, and year progress for any date.
Time
Easter Date Calculator
Compute Easter Sunday for any year using the standard Gregorian computus — or the Julian (Eastern Orthodox) variant.
Time
Quarter Calculator
For any date, get the calendar and fiscal quarter (configurable fiscal-year start), days into and left in it, and the quarter's start and end dates.
Time