四柱
four pillars — how a chart is actually computed
A 八字 bā zì chart is eight characters arranged as four pillars — year, month, day, hour — each pillar a stem over a branch. Four pillars, three different clocks: the year pillar turns at 立春 (the solar beginning of spring, around February 4 — not January 1); the month pillar turns at the 12 节 solar terms; the day pillar is a pure count; the hour pillar is the 时辰 of birth, with two schools for the clock. Everything else in the system — 十神, 藏干, 大运, 流年 — hangs off these eight characters.
Because the boundaries are astronomical (the exact moment the sun crosses each degree), the app computes them with planetary-series math (VSOP87D), and it is honest about the edge cases: a birth within a minute of a boundary gets a warning instead of a silent guess.
the year pillar — 立春, not January 1 — 年柱
The bazi year begins at 立春 lì chūn, "spring establishes" — the instant the sun's apparent longitude crosses 315°, around February 4 each year. A child born on February 3 belongs to the PREVIOUS bazi year; a child born on February 5 belongs to the new one; a child born within minutes of the exact instant gets the app's explicit warning — the pillar may split across schools. This is the most famous trap in 八字: January and early-February births are one bazi year older than their calendar year.
The year pillar's stem is the year's ganzhi stem (2024 = 甲辰, so the year stem is 甲), and the year pillar sets the month pillar's stems through 五虎遁 (below).
the month pillar — the twelve 节 — 月柱
The solar year divides into 24 节气 terms, and 12 of them — the 节 — turn the month pillar. The month branch is the branch of whichever 节 the birth falls after, and the month stem is derived from the year stem by the 五虎遁 rule: the 寅 month (立春 through 惊蛰) carries the stem that follows the year's rule — 甲 and 己 years start it at 丙, 乙 and 庚 at 戊, 丙 and 辛 at 庚, 丁 and 壬 at 壬, 戊 and 癸 at 甲. The old mnemonic: 甲己之年丙作首, 乙庚之岁戊为头, 丙辛必定寻庚起, 丁壬壬位顺行流, 戊癸何方发, 甲寅之上好追求.
Then each following month advances one stem: 寅月 = 丙寅 means 卯月 = 丁卯, 辰月 = 戊辰, and so on through the cycle.
| 节 (approximate date) | month branch it opens |
|---|---|
| 立春 ~Feb 4 | 寅 |
| 惊蛰 ~Mar 6 | 卯 |
| 清明 ~Apr 5 | 辰 |
| 立夏 ~May 6 | 巳 |
| 芒种 ~Jun 6 | 午 |
| 小暑 ~Jul 7 | 未 |
| 立秋 ~Aug 8 | 申 |
| 白露 ~Sep 8 | 酉 |
| 寒露 ~Oct 8 | 戌 |
| 立冬 ~Nov 7 | 亥 |
| 大雪 ~Dec 7 | 子 |
| 小寒 ~Jan 6 | 丑 |
the day pillar — a pure count — 日柱
The day pillar is the Julian day number of the birth date modulo 60, anchored at 2000-01-01 = 戊午. No astronomy, no table, no school — pure arithmetic, verifiable by hand (module 5). The day stem of this pillar is the 日主 day master: the lens of the whole reading.
the hour pillar — two schools of the clock — 时柱
The hour branch is the 时辰 of birth (module 4's table), and the hour stem comes from the day stem by the 五鼠遁 rule: 甲 and 己 days start the 子 hour at 甲, 乙 and 庚 at 丙, 丙 and 辛 at 戊, 丁 and 壬 at 庚, 戊 and 癸 at 壬. Mnemonic: 甲己还加甲, 乙庚丙作初, 丙辛从戊起, 丁壬庚子居, 戊癸何方发, 壬子是真途. Each later 时辰 advances one stem.
The controversy is the clock itself. The 时钟 school reads the local clock time. The 真太阳时 school corrects it twice: for longitude (the sun is not overhead at 12:00 when you are 6° off the timezone's meridian) and for the equation of time (the earth's orbit makes solar noon drift up to ~16 minutes around mean noon). The app computes both honestly and shows which school it used — the choice is yours, and the school is named. If no longitude is given, the app falls back to clock school rather than pretend precision.
a worked example — 2000-01-01, 12:00, Beijing
Born at noon on January 1, 2000. Year: the date is before 立春, so the bazi year is 1999 = 己卯. Month: January 6's 小寒 has not happened yet, so the month branch is still 子 from the previous December's 大雪 — and the year stem 己 sets the 寅 month at 丙寅 (甲己之年丙作首), so the 子 month is ten seats back around the stem ring: 丙子. Day: JDN 2451545, the anchor itself — 戊午. Hour: noon is 午时; the day stem 戊 sets the 子 hour at 壬子, so the 午 hour (six steps later) is 戊午. The chart: 己卯 · 丙子 · 戊午 · 戊午. Every one of those steps is public arithmetic — type the same numbers into the app and it must agree.