How we calculate BaZi
MingScroll uses tyme4ts (MIT) as the primary engine and cross-checks four pillars with lunar-javascript (MIT). Solar terms follow the Shou Xing astronomical calendar embedded in tyme4ts, resolved to the minute.
Three times on the result card
- Clock (civil) time — what was on the watch, interpreted in your selected IANA timezone (including historical DST such as China 1986–1991).
- Mean solar time — civil time plus longitude correction: 4 minutes per degree east/west from the time zone's standard meridian.
- True solar time — mean solar time plus the equation of time (NOAA approximation). When enabled, pillars are computed from true solar components.
子时 (23:00) rules
Split early Rat uses tyme4ts DefaultEightCharProvider (23:00 starts a new day pillar). 23:00 same calendar day uses LunarSect2EightCharProvider.
Solar-term boundaries
Year and month pillars change at 节 (jie), not 气. If birth is within 2 hours of a jie boundary, we show a warning — verify minutes with a birth certificate when possible.
Xinjiang / Urumqi civil time
True solar time depends on longitude after converting civil time to UTC correctly. If the birth location used Beijing civil time vs Xinjiang local convention, pick the matching city and timezone in the form.
Before 1970
IANA tzdata before 1970 is incomplete; we display a warning for pre-1970 births.