Boundaries

The five minutes that decide a chart

Two births eight minutes apart can produce different year, month and day pillars. Every calculator makes a choice at those edges; almost none publishes it. These are the five boundaries, with the actual output from this engine beside a second implementation.

Every figure below is computed from the engine when this page is built, not transcribed by hand. Last rebuilt 2026-10-20.

01

The day rolls at 23:00, not at midnight

子时换日

Birth (Beijing clock)True solarYearMonthDayHour
20 October 2026 22:3022:31丙午戊戌丁卯辛亥
20 October 2026 23:3023:31丙午戊戌戊辰壬子
21 October 2026 00:3000:31丙午戊戌戊辰壬子

23:30 on the 20th and 00:30 on the 21st produce the identical chart — 戊辰 壬子. The day pillar rolls at 23:00, not at midnight, so an hour before midnight already belongs to the next day. 22:30 is still 丁卯.

This is the 子时 rule in its common form (晚子时归次日). The alternative convention keeps 23:00–24:00 on the current day; WuWay uses the first, and does not offer a toggle, because a chart that silently changes convention between two sites is worse than one that states its own. If you were born between 23:00 and midnight, your day pillar is the one thing to double-check elsewhere.

02

True solar time can move your birthday

真太阳时

Kashgar sits at 75.9898°E but keeps Beijing time, whose meridian is 120°E. The sun there is roughly 176 minutes behind the clock.

Birth (Beijing clock)True solarSolar dateYearMonthDayHour
20 October 2026 00:0021:192026-10-19丙午戊戌丙寅己亥
20 October 2026 00:4021:592026-10-19丙午戊戌丙寅己亥
Control: Beijing 19 October 2026 12:0012:002026-10-19丙午戊戌丙寅甲午

Both Kashgar births are dated 20 October on the certificate, and both get 丙寅 as the day pillar — which the control row shows is 19 October’s pillar. Two people born either side of local midnight, forty minutes apart, are on the same solar day as far as the chart is concerned.

The correction is -176.0 min from longitude plus 15.3 min of equation of time = -160.8 min total at this date. Tools that skip true solar time give both Kashgar rows a 20 October day pillar and an hour pillar taken from 00:xx, which is a different chart.

03

A leap month does not create a month pillar

闰月

2025 has a leap sixth lunar month (闰六月). If the month pillar followed the lunar calendar, the leap month would need a pillar of its own. It does not — the month pillar follows the solar terms, and only 立秋 moves it.

DateLunar dateGoverning termYearMonthDay
10 July 2025六月十六小暑乙巳癸未庚辰
25 July 2025闰六月初一大暑乙巳癸未乙未
10 August 2025闰六月十七立秋乙巳甲申辛亥

The leap month begins on 25 July and the month pillar is unchanged (癸未 before, 癸未 after). It changes at 立秋, and 10 August 2025 is already 甲申. The month pillar tracks the sun’s position, not the moon’s.

This is why “which lunar month was I born in” is the wrong question for a BaZi chart, and why a converter that maps lunar month to month pillar will be wrong for anyone born in, or just after, a leap month.

04

The year flips on a different date in New York

立春

立春 is a single instant for the whole planet: 2026-02-04 04:02:08 Beijing time. In New York that same instant is 3 February 2026, 15:02. The year pillar changes when the instant passes, not when the local calendar page turns.

BirthYearMonthDayHour
Beijing 4 February 2026 03:58乙巳己丑己酉丙寅
Beijing 4 February 2026 04:06丙午庚寅己酉丙寅
New York 3 February 2026 14:58乙巳己丑戊申己未
New York 3 February 2026 15:06丙午庚寅戊申己未

Eight minutes apart in Beijing flips both the year and the month pillar: 乙巳 己丑 → 丙午 庚寅. The same flip happens on 3 February in New York. A tool that tests “is the birth date after 4 February” gets every New York birth in that window wrong by a whole year pillar.

Note which pillars moved and which did not. The day pillar is untouched in both cities (己酉 in Beijing, 戊申 in New York) because it is a local-midnight matter, while the year and month are read against the absolute instant. Mixing those two frames is the single most common structural bug in BaZi calculators.

05

Where our own cross-check runs out

校验盲区

WuWay cross-checks its engine against a second implementation that shares no code with it. That implementation is honest about its precision in its own source header: the Meeus low-precision series is good to about ±15 minutes. So it can confirm ordinary charts but it cannot decide a birth inside the last few minutes before a solar term. This is that limit, measured.

Offset from 立春EngineIndependentAgree
-20 min乙巳 己丑乙巳 己丑yes
-15 min乙巳 己丑乙巳 己丑yes
-10 min乙巳 己丑乙巳 己丑yes
-6 min乙巳 己丑丙午 庚寅NO
-5 min乙巳 己丑丙午 庚寅NO
-4 min乙巳 己丑丙午 庚寅NO
-3 min乙巳 己丑丙午 庚寅NO
-2 min乙巳 己丑丙午 庚寅NO
-1 min乙巳 己丑丙午 庚寅NO
0 (the instant)乙巳 己丑丙午 庚寅NO
+5 min丙午 庚寅丙午 庚寅yes

They agree from 10 minutes out and disagree inside roughly 6 minutes: the independent implementation already reports the new month while the engine, using a higher-precision series, still has the old one. Neither is broken. The cross-check simply stops being evidence that close to a term, and this page says so rather than quoting a clean 30/30 as if it covered every case.

The 30 charts on /tests all sit clear of a boundary, which is why they can be compared at all. For a birth genuinely inside that window, the engine emits a jieqi-boundary warning and the honest answer is to read both sides — which is what the classical practice does anyway.

What to do if you were born near a boundary

If your birth time is within about twenty minutes of 23:00, of a two-hour hour boundary, or of a solar term, the chart is genuinely ambiguous and no calculator can resolve it for you. WuWay flags it in the reading instead of pretending to certainty. The honest move is to read both sides and keep whichever actually describes the life — which is what practitioners did before any of this was software.

The engine emits three warnings for exactly these cases: hour-boundary, jieqi-boundary, and dst-gap / dst-ambiguous for clock times that did not exist or occurred twice.

The full verification run  ·  30 worked reference charts  ·  Calculate your own