Three Corrections That Change the Hour Pillar --- True Solar Time, DST, and the Late Night Hour
Your Birth Time Might Not Be the "Real" Time
In Saju, the Hour Pillar is determined by birth time. The day is divided into 12 two-hour intervals called si-jin. The Hour of the Rat (Ja-si) runs from 23:00 to 01:00, the Hour of the Ox (Chuk-si) from 01:00 to 03:00, and so on. Seems simple enough --- just divide the birth time into two-hour blocks.
But there is a wrinkle. The birth time on the clock might differ from the "real" solar time by up to 48 minutes. In Seoul, the time your watch shows and the time the sun actually reaches its zenith can diverge by nearly three-quarters of an hour. For an Hour Pillar system based on two-hour intervals, 48 minutes is more than enough to shift someone into a different pillar entirely.
Do you ignore this and use the birth certificate time as-is? Or do you apply corrections? And if you correct, how far do you go? This was the biggest design decision in implementing the Hour Pillar.
True Solar Time: 32 + 16 = Up to 48 Minutes of Difference
Korea Standard Time (KST) is based on the 135th meridian east. That reference meridian runs through Akashi, Japan. Seoul's longitude is approximately 127 degrees east. This 8-degree difference translates to about 32 minutes --- because every degree of longitude equals 4 minutes of time.
In plain terms: when your Korean clock reads 12:00 noon, the sun has not actually reached its zenith over Seoul yet. Seoul's "true noon" is about 32 minutes later than clock time. In Saju, the Hour Pillar should be based on this "true solar time," not the clock --- that is the core idea behind True Solar Time correction.
On top of this, there is the Equation of Time. Because Earth's orbit is an ellipse (not a perfect circle) and its axis is tilted, the sun's transit time shifts slightly every day. This variation can reach about 16 minutes. In mid-February, the sun transits roughly 14 minutes early; in early November, about 16 minutes late.
Combining the 32-minute longitude offset with a potential 16-minute Equation of Time adjustment yields a theoretical maximum correction of 48 minutes. Since Hour Pillars change every two hours, 48 minutes is enough to cross a boundary. For example, someone born at 13:05 by the clock could, after correction, land around 12:20 --- the difference between the Hour of the Horse (O-si, 11:00--13:00) and the Hour of the Goat (Mi-si, 13:00--15:00). A different Hour Pillar means a different Hour Stem, which changes the Ten Gods relationships and interpretation.
Implementing the Equation of Time
To implement the Equation of Time, you need a daily correction value. It can be calculated from astronomical formulas, which are not simple.
When I asked Claude for the Equation of Time formula, it offered two approaches. The first was a precise astronomical formula incorporating Earth's orbital eccentricity and axial tilt through a combination of trigonometric functions. The second was an approximation formula that takes the day of year as input and returns a sufficiently accurate estimate.
The Saju app needs precision within 1 minute. If the approximation formula's error stays under 30 seconds, it is practically sufficient. I adopted the approximation, then verified it against the full astronomical formula for multiple dates to confirm the error range. AI's note that "the maximum difference between the two formulas is X seconds" helped speed up this decision.
The final True Solar Time formula: True Solar Time = Clock time - Longitude correction (~32 minutes) + Equation of Time (daily variable). This result is the "real" birth time used for Hour Pillar determination.
Daylight Saving Time: Korea's Historical Time Shift
If True Solar Time is a "geographic" correction, Daylight Saving Time (DST) is an "institutional" correction. South Korea implemented DST during three separate periods.
The first was 1948 to 1951, shortly after the founding of the Republic of Korea. The second was 1955 to 1960, resumed after the Korean War. The third was 1987 to 1988, a brief implementation ahead of the Seoul Olympics. Even within each period, the start and end dates varied by year.
For people born during DST periods, the birth certificate time includes a one-hour DST offset. To find the true solar time, you must subtract one hour. This one hour reliably shifts someone into a different Hour Pillar.
The tricky part of implementation was accurately compiling DST application periods. I needed a year-by-year table of DST start and end dates from 1948 through 1988. Claude organized the relevant data, which I cross-verified against KASI records and Korean legal archives.
Realistically, the users affected by DST correction are those born before 1988 --- age 38 or older as of 2026. The percentage may be small, but it cannot be dismissed. In a Saju app, "accuracy" must apply to every user.
The Late Night Hour (Yajasi): Same Hour of the Rat, Different Day Pillar
The most philosophically complex issue in Hour Pillar correction is the Late Night Hour (Yajasi, 23:00-00:00). The Hour of the Rat spans 23:00 to 01:00 the next day. But midnight (00:00) sits right in the middle. When the calendar date changes, the Day Pillar changes. So someone born at 23:30 and someone born at 00:30 --- both in the Hour of the Rat --- have different Day Pillars.
Two schools of thought address this paradox.
The first is the Late Night Hour theory (Yajasi-seol). It splits the Hour of the Rat into two halves: the Late Night Hour (23:00--00:00) and the Early Morning Hour (00:00--01:00). Someone born during the Late Night Hour uses the next day's Day Pillar --- meaning 23:00 onward is already "tomorrow." The Hour Pillar's Heavenly Stem stays the same, but the Day Pillar changes, reshuffling all the Ten Gods relationships.
The second is the non-split theory. The Hour of the Rat is not divided; the Day Pillar simply changes at midnight. 23:00--23:59 uses today's Day Pillar; 00:00--00:59 uses tomorrow's. This aligns intuitively with the Gregorian date change, but it creates the awkward situation where the Hour Pillar's Stem varies depending on the Day Pillar.
Modern Saju practice generally favors the Late Night Hour theory, and most professional apps default to it. Our app follows suit --- defaulting to the Late Night Hour theory while allowing users to switch in settings. Hardcoding one answer means users who follow the other school will consider the app "wrong."
Rule Ambiguity Is Harder Than Algorithm Complexity
True Solar Time. DST. The Late Night Hour. Implementing these three corrections, the biggest realization was that deciding "which rule to apply" is harder than implementing the rule itself.
The math behind True Solar Time correction is unambiguous. Translate it to code and you are done. DST correction is a simple conditional lookup once you have the table. But the question "Should we apply True Solar Time correction at all?" is not a technical question --- it is a philosophical one. Some Saju practitioners argue that you should use the clock time from the birth certificate as-is. Their logic: what matters is not the sun's actual position but "the time this person was registered in the world."
The Late Night Hour is the same story. Both the split theory and non-split theory have legitimate theoretical grounding. Neither can be declared "correct." This is not a math problem --- it is an interpretive one.
As a developer facing this situation, I settled on a single principle: "Sensible defaults + explicit options." True Solar Time correction: on by default. DST: auto-detected for relevant periods. Late Night Hour: Late Night Hour theory by default. But all three are togglable in settings. Users should be able to choose based on their own Saju philosophical stance.
This "default + options" structure undeniably increases code complexity. Supporting every combination requires far more branching and testing than implementing a single rule. But in a domain with multiple right answers, that complexity must be accepted.
The Combinatorial Explosion of Three Corrections
True Solar Time on/off. DST on/off. Late Night Hour handling method. The combinations of these three settings can produce different Hour Pillars for the same birth time --- especially for people born near Hour Pillar boundaries, where the entire chart can shift depending on settings.
Consider someone born July 15, 1987 at 23:10 in Seoul. DST is active in 1987 (subtract 1 hour). 23:10 falls in the Late Night Hour zone. Seoul requires True Solar Time correction. Each app that applies a different subset of these three corrections lands on a different result.
Or imagine the birth time was 23:40 instead. After DST correction: 22:40. After True Solar Time correction: around 22:10. With correction applied, this is the Hour of the Pig (Hae-si, 21:00--23:00). Without correction, it is the Hour of the Rat (Ja-si, 23:00--01:00). Completely different Hour Pillars.
To handle such cases, the app explicitly displays "currently applied correction settings" and lets users toggle each setting to immediately see how the results change. The answer to "Why is this different from another app?" must always be transparently available.
What I Learned Along the Way
First, time correction is less about mathematical computation and more about "which stance to take." The formulas are clear, but whether to apply them varies by school.
Second, the "default + explicit options" pattern is the core design principle for domains with multiple right answers. Offering only one loses half your users; offering all without structure creates confusion.
Third, the combinatorial space of correction settings must be recognized and designed for from the start. Trying to add flexibility later means touching the entire existing codebase.
Fourth, AI excels at "summarizing the differences and rationale behind two schools of thought," but the final choice of "our app goes with this one" must be made by a human.
Next Up
The Manselyeok is complete. Time corrections are implemented. The four pillars are now calculated accurately. It is time to "analyze" those pillars. How to determine the Favorable Element (Yongsin), why 22 Spirit Indicators (Sinsal) got promoted from P3 to must-have, and how Major Fate Cycles (Daewoon) and Annual Fate (Sewoon) are calculated --- Part 9 covers it all.
댓글
댓글 쓰기