Build1 distinct publisher3 min readUpdated
Wall-clock time is not solar time, and closing the gap needs the DST rules in force on the date. The tz history is already sitting in your runtime, with strings attached.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
The general shape of this bug has nothing to do with astrology. It is treating a zone's present offset as its offset at some arbitrary past instant, which is what almost every wall-clock-plus-zone record in production quietly assumes.
Longitude is the part that never turns off. At four minutes per degree, China's single clock across five geographic zones puts a clock in Urumqi roughly two hours ahead of the sun, according to the author's writeup on dev.to [6]. Set that against twelve two-hour branches [1] and it is exactly one branch, for every birth, all year [1]. Vancouver's three degrees west of its standard meridian is quieter at 12 minutes [7], but it is there in January as much as in July.
The July Vancouver case stacks up to about 78 minutes of correction [8], which is roughly 65 percent of a branch [3]. Take out the 12 minutes of longitude and 66 minutes are left for summer time plus the equation of time [2], so the dominant term is the one that needs history rather than geometry. The equation of time itself, worth up to plus or minus 16 minutes over the year, is the small correction here, and the NOAA approximation the author uses is accurate to under a minute [4].
Pulling a historical offset out of the runtime is a tidy trick: Intl.DateTimeFormat will format a UTC instant in any zone, and reassembling those formatted parts as though they were UTC and differencing gives you the offset in minutes [10]. The flipside of shipping no data file is that a 1988 answer becomes a property of whichever ICU build your base image happened to carry.
The platform gaps are where the workarounds worth stealing sit. JavaScript exposes no isdst, so the code samples the zone offset on Jan 1, Jul 1 and the birth instant, taking the minimum as standard time on the reasoning that DST only ever moves clocks forward [11]. That third sample is not decoration. Morocco runs negative DST during Ramadan, and without it the heuristic invents a 60 minute shift that never happened [12]. Separately, computing local mean solar time as longitude times four minutes relative to Greenwich lands the Chatham Islands, at 176.5W on UTC+12:45, a full day out, straight into the day pillar the whole reading hangs on [13]. Normalising longitude to within 180 degrees of the zone's own standard meridian rather than Greenwich is the correction [14].
Going the other way, from wall time to an instant, is circular: you need the offset to find the instant and the instant to find the offset. The author reports two fixed-point iterations converge everywhere except inside the one-hour DST gap, where no exact answer exists to converge on [15].
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
BaZi divides the day into twelve two-hour branches, so the birth hour is one of the chart's four pillars; get the hour wrong and the chart is categorically different, not slightly different.
Every BaZi calculator the author could find feeds the system the wall-clock time from the birth certificate, although the tradition predates time zones by about two thousand years and means solar time, where the sun actually was over the birthplace.
The difference between clock time and solar time decomposes into exactly three parts: the DST rules in force on the birth date, longitude at four minutes per degree from the zone's standard meridian, and the equation of time.
The equation of time makes the sun up to plus or minus 16 minutes fast or slow over the year because of orbital eccentricity and axial tilt, and NOAA publishes an approximation accurate to under a minute.
China ran a now-forgotten DST experiment from 1986 to 1991, so a Beijing birth certificate from July 1988 is an hour ahead of standard time and no modern-day lookup will report it; Harbin also kept its own zone before 1949.
China spans five geographic time zones but uses one clock, so a clock in Urumqi runs about two hours ahead of the sun.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Self-reported but code-backed
The technical claims are accompanied by working TypeScript and well-known public facts (IANA tzdb history, NOAA equation of time), which makes them checkable in principle, but everything rests on one first-person post with no independent verification of the specific correction totals.
No adoption signal
The source discloses no users, downloads, deployments, releases or third-party usage of the calculator or the technique.
Slightly understated
Framing is modest and scoped to input math; the author explicitly brackets the interpretive tradition and flags cases where no exact answer exists. If anything the general applicability of the ICU offset-recovery trick beyond astrology is undersold.
No disclosed commercial stake
The post promotes the author's own calculator, but the source gives no pricing, sponsorship, employer or monetization information from which to characterize incentives.
Moderate-low
Internally coherent and technically plausible with inspectable code, but one publisher, one author and no external validation or adoption evidence cap confidence.
build
A GAN beauty filter is a device budget allocation, not a feature toggle1 distinct publisher
build
The npm audit that works because it never installs the package1 distinct publisher
build
The 2-4 seconds you pay per file: batch tsc once per agent session, not once per edit1 distinct publisher
build
Yadda 3's real artifact is not the code, it is the rules the agent could not rewrite1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 22, 2026