Day Pillar

Verification corpus

31 cases the engine is tested against on every build. If any pillar below stops reproducing, the site does not deploy.

The point is not to claim we are right. It is to show where implementations diverge and why — so that when a chart here disagrees with another site, the disagreement can be located instead of disputed. See the conventions for the choices behind them.

31
test cases
3
where naive true-solar-time gets the year wrong
4
where schools split on the day pillar
8
historical DST cases
4
hand-verified hard cases
236 min
largest single correction

Solar-term boundaries

A birth minutes either side of Li Chun changes the year pillar. These are the cases where feeding true solar time into the term comparison — the intuitive implementation — returns the wrong year.

BirthCorrectionTrue solar timePillarsNote
2024-02-04 16:26
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT −13.86m
= −37.18m
2024-02-04 15:48:49癸卯 乙丑 戊戌 庚申

One minute before Li Chun 16:27:07 CST

2024-02-04 16:28
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT −13.86m
= −37.18m
2024-02-04 15:50:49甲辰 丙寅 戊戌 庚申

One minute after — year pillar must advance

A naive true-solar chain returns year 癸卯.

2024-02-04 03:30
America/New_York · -74.00°
lon +4.00m
EoT −13.86m
= −9.86m
2024-02-04 03:20:08甲辰 丙寅 戊戌 甲寅

03:30 EST = 16:30 CST, past Li Chun. A naive TST chain returns the wrong year

A naive true-solar chain returns year 癸卯.

2024-02-04 08:30
Europe/London · -0.13°
lon −0.52m
EoT −13.86m
= −14.38m
2024-02-04 08:15:37甲辰 丙寅 戊戌 丙辰

08:30 GMT = 16:30 CST — same trap, different offset

A naive true-solar chain returns year 癸卯.

2024-02-04 19:30
Australia/Sydney · 151.21°
lon −55.16m
EoT −13.86m
= −69.02m
2024-02-04 18:20:59
DST in force
甲辰 丙寅 戊戌 辛酉

Southern hemisphere, ahead of CST

Historical time zones

Singapore ran UTC+7:30 until 1982. Hong Kong observed summer time. China observed daylight saving from 1986 to 1991, which affects an entire cohort of mainland births. These are resolved from the IANA database rather than assumed.

BirthCorrectionTrue solar timePillarsNote
1970-01-15 12:00
Asia/Singapore · 103.82°
lon −34.72m
EoT −9.28m
= −44.00m
1970-01-15 11:15:59己酉 丁丑 乙未 壬午

Singapore ran UTC+7:30 before 1982

1990-01-15 12:00
Asia/Singapore · 103.82°
lon −64.72m
EoT −9.28m
= −74.00m
1990-01-15 10:45:59己巳 丁丑 庚辰 辛巳

Same city after the 1982 shift to UTC+8

1965-07-15 12:00
Asia/Hong_Kong · 114.17°
lon −83.32m
EoT −5.81m
= −89.13m
1965-07-15 10:30:52
DST in force
乙巳 癸未 庚午 辛巳

Hong Kong observed summer time — UTC+9

2024-07-15 12:00
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT −6.03m
= −29.35m
2024-07-15 11:30:39甲辰 辛未 庚辰 壬午

Same city, no DST — control for the above

1990-06-15 12:00
Asia/Shanghai · 75.99°
lon −236.04m
EoT −0.30m
= −236.34m
1990-06-15 08:03:39
DST in force
庚午 壬午 辛亥 壬辰

China observed DST 1986-1991; far-west longitude compounds it

1990-07-15 12:00
America/Los_Angeles · -118.24°
lon −52.96m
EoT −5.93m
= −58.89m
1990-07-15 11:01:06
DST in force
庚午 癸未 辛巳 甲午

Western hemisphere DST, negative longitude

Equation of time

The correction most calculators omit. It reaches roughly ±14 to ±16 minutes, which is enough to move an hour branch.

BirthCorrectionTrue solar timePillarsNote
1990-02-11 12:00
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT −14.30m
= −37.62m
1990-02-11 11:22:22庚午 戊寅 丁未 丙午

EoT annual minimum ~-14.2 min

1990-05-14 12:00
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT +3.69m
= −19.63m
1990-05-14 11:40:22庚午 辛巳 己卯 庚午

EoT local maximum ~+3.7 min

1990-07-26 12:00
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT −6.48m
= −29.80m
1990-07-26 11:30:11庚午 癸未 壬辰 丙午

EoT local minimum ~-6.5 min

1990-11-03 12:00
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT +16.46m
= −6.86m
1990-11-03 11:53:08庚午 丙戌 壬申 丙午

EoT annual maximum ~+16.4 min

1990-04-15 12:00
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT −0.16m
= −23.48m
1990-04-15 11:36:31庚午 庚辰 庚戌 壬午

EoT near zero crossing — sign errors hide here

The day boundary

Where the two schools genuinely disagree. Both columns are shown; neither is presented as the error.

BirthCorrectionTrue solar timePillarsNote
1990-06-15 23:00
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT −0.41m
= −23.73m
1990-06-15 22:36:16庚午 壬午 辛亥 己亥

Clock 23:00 is NOT the start of zi at this longitude — TST 22:36 is still the 亥 hour. Guards against reading the zi boundary off clock time

1990-06-15 23:30
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT −0.41m
= −23.73m
1990-06-15 23:06:16庚午 壬午 辛亥 庚子

Mid late-zi — the canonical school-difference case

Other school gives day 壬子.

1990-06-15 23:59
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT −0.42m
= −23.74m
1990-06-15 23:35:15庚午 壬午 辛亥 庚子

Last minute before midnight

Other school gives day 壬子.

1990-06-16 00:01
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT −0.42m
= −23.74m
1990-06-15 23:37:15
crosses calendar day
庚午 壬午 辛亥 庚子

Clock is past midnight but TST falls back to the previous day — crossedDayBoundary must be true and the day pillar must stay on the 15th

Other school gives day 壬子.

1990-06-16 00:30
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT −0.42m
= −23.74m
1990-06-16 00:06:15庚午 壬午 壬子 庚子

Genuine early zi: day pillar advances to the 16th while the hour stays 子

Extreme longitudes

Places far from their own zone meridian, where the correction runs to hours rather than minutes.

BirthCorrectionTrue solar timePillarsNote
1990-06-15 08:00
Asia/Shanghai · 75.99°
lon −236.04m
EoT −0.27m
= −236.31m
1990-06-15 04:03:41
DST in force
庚午 壬午 辛亥 庚寅

Largest ordinary correction in the corpus (~-236 min)

1990-06-15 07:00
Asia/Shanghai · 91.14°
lon −175.44m
EoT −0.26m
= −175.70m
1990-06-15 04:04:18
DST in force
庚午 壬午 辛亥 庚寅

Tibet on Beijing time

1990-06-15 12:00
Pacific/Auckland · 174.76°
lon −20.96m
EoT −0.28m
= −21.24m
1990-06-15 11:38:45庚午 壬午 辛亥 甲午

Near the date line, large positive longitude

2024-06-15 12:00
Pacific/Kiritimati · -157.47°
lon −29.88m
EoT −0.50m
= −30.38m
2024-06-15 11:29:37甲辰 庚午 庚戌 壬午

[HAND-VERIFIED] Civil offset UTC+14 but geographic longitude ~-157° — sign mismatch across the international date line. Unwrapped arithmetic gives a ~1470-minute (24.5h) correction; hand check: reference meridian 210° (=840min/4), longitude re-expressed as 202.53° (=-157.47+360) is 7.47° from it, so the correction must be (7.47°×4=)~29.9 minutes, not 24.5 hours.

Control charts

Ordinary births used to compare against independent references.

BirthCorrectionTrue solar timePillarsNote
1990-06-15 12:00
Asia/Hong_Kong · 114.17°
lon −23.32m
EoT −0.31m
= −23.63m
1990-06-15 11:36:22庚午 壬午 辛亥 甲午

Known chart: 庚午 壬午 辛亥 甲午 on clock time

2000-01-01 00:00
Asia/Shanghai · 116.41°
lon −14.36m
EoT −2.91m
= −17.27m
1999-12-31 23:42:44
crosses calendar day
己卯 丙子 丁巳 壬子

Round date, reference-site comparison

Other school gives day 戊午.

1985-09-09 09:09
Asia/Taipei · 121.56°
lon +6.24m
EoT +2.51m
= +8.75m
1985-09-09 09:17:45乙丑 乙酉 辛亥 癸巳

Third reference-site comparison

Independent references — not yet populated

Agreement between two engines by the same author proves nothing, so the plan is to compare against implementations with separate lineage, and to check solar-term instants against the Hong Kong Observatory's published announcements rather than against any calculator. That cross-check has not been run yet — the reference columns above are empty, honestly, rather than pre-filled with a claim this page cannot back up. They will be populated per case before this page is presented as evidence of anything.