MingScroll

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

子时 (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.