Open the app — Lunar · Solar Converter
Dates in old records are almost always lunar. When you meet something like the byeongja year, eleventh month, fifteenth day, what that is on the solar calendar does not come to mind.
The lunar calendar also has leap months, so the same sixth month, fifteenth day can come around twice in one year.
This tool holds 748,705 days, from AD 1 to 2050.
Search by solar date, by lunar date or by sexagenary cycle — you arrive at the same day.
Using it
Six ways in
| Tab | What you type | Example |
|---|---|---|
| Lunar | lunar date | 2025-06-15 |
| Solar | solar date | 2026-08-31 |
| Sexagenary | year pillar | 병오, 丙午 |
| Year | lunar year | 2026 |
| Julian Day | integer | 2,461,284 |
| Calendar | year-month | 2026-08 |
Dates are tidied as you type. 20260831 becomes 2026-08-31, and 2025-5-1 is accepted as written.
After a search it settles into the canonical form, so a copied link always looks the same.
Reading the result
The result comes in blocks — solar on the left, lunar on the right.
year pillar month pillar day pillar
Solar 2026 - 08 - 31 Lunar 2026 - 07 - 19
Monday 병오丙午 병신丙申 정축丁丑
On the lunar side, the pillar for each position sits under its number.
The year pillar (연주) belongs to the year, the month pillar (월건) to the month, the day pillar (일진) to the day.
Numbers and pillars are stacked, so the pairing is visible at a glance.
The weekday sits in the matching slot on the solar side, so both rows of numbers line up.
For dates within the Joseon period, the reigning king and regnal year appear underneath.1700-07-17 reads 숙종 26년 — the 26th year of King Sukjong.
From 1896 the country used the solar calendar and the Veritable Records followed suit,
so from then on it sits on the solar side and the era name comes with it — 고종 33년 건양 원년.
← and → move a day at a time, and the Previous / Next day buttons do the same.
Stepping from a lunar search keeps you on the lunar view.
Leap months show both
Searching the lunar date 2025-06-15 returns two cards.
| Lunar | Solar | |
|---|---|---|
| Ordinary | 6th month, 15th day, 2025 | 2025-07-09 |
| Leap | Leap 6th month, 15th day, 2025 | 2025-08-08 |
You do not have to choose in advance. If that year has the leap month, both appear; if not, one card.
The month reads 윤06 with a 윤달 mark, so they do not blur together.
A leap month has no month pillar. Seeing “none” there is correct — the reason is below.
Printing a month
The Calendar tab lays out one month, seven days to a row. The large number is solar, the small one lunar (6/15).
The first day of each lunar month is set in bold, so you can see where the lunar month turns over.
The Print · PDF button strips the interface and fits the calendar onto one A4 sheet.
Landscape is the default; portrait is available. Choosing “Save as PDF” in the browser’s print dialog gives you a PDF.
The calendar covers 1950 onward. Date conversion itself still works from AD 1.
Two solar calendars
The toggle in the header switches between the Gregorian and Julian calendars.
The day after 4 October 1582 became 15 October, cutting ten days, and countries changed over at different times.
Records from that era therefore mix the two. That is why the Russian October Revolution falls in November on the Gregorian calendar.
We use the Gregorian calendar, so that side is the default.
Flip the toggle only when you are working with a record written in Julian dates.
The day you are looking at stays put while the notation changes, so switching keeps you on the same day.
Straight to the sources
Below the date, buttons appear for the historical archives that cover that period:
the Veritable Records of the Joseon Dynasty, the Diaries of the Royal Secretariat, the Ilseongnok
(original and translation), the Ming and Qing Veritable Records, and
East Asian Chronology.
A button does not drop you at the archive’s front page — it opens that very date.
Look up 1778-07-30, press the Royal Secretariat button, and you land on the 7th day of the
intercalary 6th month, Jeongjo year 2. Hover to see where a button will take you.
| Archive | Coverage | What opens |
|---|---|---|
| Joseon Veritable Records | 1392 – 1926 | that date |
| Diaries of the Royal Secretariat | 1623 – 1910 | that date |
| Ilseongnok (Kyujanggak, original) | 1760 – 1910 | that date |
| Ilseongnok (ITKC, translation) | — | list of translated parts |
| Ming / Qing Veritable Records | 1368 – 1627 / 1616 – 1911 | that month’s list of days |
Each archive counts dates its own way, and the converter sorts that out for you.
The same day needs a regnal year counted from the accession day for the Joseon Records,
a lunar month for the Ming and Qing Records, and a reign-specific volume code for the Ilseongnok.
From 1896 the Joseon Records and the Royal Secretariat switch to solar dates while the Ilseongnok
stays lunar — that is handled too.
Archives that do not cover the date are dimmed and cannot be clicked.
For 1446 the Joseon and Ming records come alive; for 1800, six of them do.
Around a change of monarch, the archives disagree on what to call the day.
The Joseon Veritable Records switch to the new king on his accession day, but the
Diaries of the Royal Secretariat wait until the first of the following month for three
kings — Gyeongjong, Yeongjo and Jeongjo. So for the 20th day of the 6th lunar month of
1720 the Records button goes to 경종 즉위년 (Gyeongjong, accession year) while the
Secretariat button goes to 숙종 46년 (Sukjong, year 46). Each archive is sent to the
day its own first entry appears; splitting on the accession day alone would leave some
twenty days landing on empty pages.
Linking straight to a date
Searching updates the address bar. Keep that link and it opens on that date next time.
calendar.hanhub.click/?solar=2026-08-31
calendar.hanhub.click/?lunar=2026-07-19
calendar.hanhub.click/?year=2026
calendar.hanhub.click/?month=2026-08
calendar.hanhub.click/?gapja=병오
calendar.hanhub.click/julian?julian=1582-10-04
Worth knowing
How a leap month is decided
The lunar month follows the synodic cycle of about 29.53 days. Twelve of them make about 354 days — some ten days short of a solar year.
Left alone, New Year would drift into summer within a few years, so a thirteenth month is inserted every two or three years.
Nineteen solar years come out almost exactly equal to 235 lunar months, so seven leap months in nineteen years all but cancels the error.
Which month gets doubled is settled by the twenty-four solar terms. They divide into odd-numbered jeolgi and even-numbered junggi, and each lunar month is assigned one junggi.
But the gap between junggi (30.44 days on average) is longer than a lunar month, so they drift, and eventually a month arrives with no junggi in it at all.
That month becomes the leap month and takes the name of the month before it.
In summer the earth moves slowly, stretching the gap to 31.4 days, so leap months cluster there.
Leap months from the 2nd to the 8th are common; a leap 11th, 12th or 1st month comes round once in centuries.
The twenty-four solar terms are solar
The terms are defined purely by the sun’s position — the ecliptic cut into twenty-four fifteen-degree steps. The moon’s phase never enters the calculation.
So on the solar calendar their dates barely move from year to year (Ipchun around 4 February, Dongji on 21–22 December), while on the lunar calendar they swing by more than ten days.
They are easy to mistake for a lunar feature because old calendars printed them beside lunar dates.
The truth is closer to the opposite: the terms are the solar element that stops the lunar calendar from drifting out of season.
The pillars are not lunar dates
The sexagenary pillars are often called “lunar”, but each has its own basis.
| Pillar | Basis |
|---|---|
| Day (일진) | a 60-day cycle tied to nothing else |
| Month (월건) | solar terms |
| Year (연주) | New Year, or Ipchun, depending on use |
The day pillar in particular is a pure 60-day cycle that has never once been broken. It keeps turning through leap months and calendar reforms alike.
That is why a single modulo on the Julian Day Number produces it.
This is also why a leap month has no month pillar. The month pillar is fixed by solar terms, and a leap month is precisely the month with no junggi to assign.
The year pillar splits by usage. For naming historical years — the Imjin War, the Gabo Reform — it turns at New Year; in fortune-telling it turns at Ipchun.
That is why the zodiac sign of someone born in January or early February differs between sources. This tool uses the New Year basis.
The Julian Day Number
It simply counts days from a fixed origin. No years, no months — one integer, which makes it the common ground between different calendars.
The origin is noon on 1 January 4713 BC, found by working backwards to the last moment when the 28-year solar cycle, the 19-year Metonic cycle and the 15-year indiction all began together (28 × 19 × 15 = 7,980 years).
The name has no direct connection to the Julian calendar or to Julius Caesar. Joseph Scaliger proposed it in 1583; the names merely coincide.
Wu Zhou notation
For 696–700 the eleventh and twelfth lunar months appear as 正 and 臘. This is not an error but the calendar as it stood.
In the first year of the Zaichu era, Wu Zetian moved the start of the year to the ja month, renaming the eleventh month jeongwol (正月) and the twelfth napwol (臘月).
The month pillars in the source follow suit.
Two corrections to the source
The data comes from the Korea Astronomy and Space Science Institute.
Two places where the source contradicts itself were corrected with evidence; nothing else was touched.
The year pillar for 511 — the source reads 신축 (辛丑), but sitting between 경인 in 510 and 임진 in 512 it has to be 신묘 (辛卯).
The standard formula that makes AD 4 a gapja year gives 신묘 as well, and against the 2,085 years in East Asian Chronology, 511 was the only year that disagreed.
The first day of the third month, 768 — the second month ran 28 days and the third 31. A synodic month can only be 29 or 30 days, so neither length is possible.
Computing the new moons for 754 months across 740–800 shows the source erring only late; this one month was a day early and had an impossible length.
Moving the first day one day later makes the months 29 and 30 days, as they should be.
Using it from code
It runs entirely in the browser with no server, but the paths and response shape match a REST API.
import { createClient } from 'https://calendar.hanhub.click/src/api.js';
const api = await createClient();
api.get('/api/v1/solar/2026-08-31'); // Gregorian → lunar and pillars
api.get('/api/v1/lunar/2026-07-19'); // lunar → solar (ordinary and leap)
api.get('/api/v1/year/2026'); // the months of that lunar year
api.get('/api/v1/month/2026-08'); // one month of calendar
api.get('/api/v1/gapja/yeonju/병오'); // years whose pillar is byeongo
A day’s result carries what you see on screen. day.reign is the reigning king and regnal year
(with the era name where there is one), and day.sources is the list of archive links.
{ "reign": { "name": "숙종", "year": 26, "label": "숙종 26년", "era": null },
"sources": [ { "id": "sjw", "name": "승정원일기", "deep": true,
"hint": "정조 2년 윤6월 7일", "url": "https://sjw.history.go.kr/..." } ] }
The API page lets you click a path and see the response straight away.
When you need more authority
This is a tool for checking quickly.
For something you will cite, consult the original KASI data alongside it.
Found an error? Use [오류신고] at the bottom of the page to report it.
Goes well with
- To turn era names and cycle years into Western years, there is East Asian Chronology.
- To look up characters from your source, use the Korean Studies Web Dictionary.
- To type a character whose reading you don’t know, there is the Unicode Hanja IME.
- To dock several tools beside your browser, use the Korean Studies Toolkit Chrome extension.
Open the app — Lunar · Solar Converter