#355 · Ruler year marks round in BCE numbering, meeting CE at 1 CE
- timeline-app
- pull request
Closes #340 **Cause.** Year graduations (10 years and up) were aligned to astronomical year zero in `bounds` (`src/ruler.ts`), so a millennia view BCE marked astronomical −2000, −1000 and 0, which print as "2001 BCE", "1001 BCE" and "1 BCE". **Fix.** Whole-year levels now step in BCE/CE numbering: every *step* BCE (astronomical 1 − n·step) and every *step* CE, with **1 CE** between them where the eras meet (there is no year zero). An Ancient Egypt view after Fit all reads 3000 BCE · 2000 BCE · 1000 BCE · 1 CE, with century minor marks at 1500 BCE and so on. This applies to every year graduation (decades, centuries, millennia and larger). Single years, months, quarters and CE-only views stay as they were; the only CE change is that the mark where the eras meet sits on 1 CE instead of 1 BCE. Month levels keep their own arithmetic, unchanged. Deep time (beyond a million years BCE) still prints ages before 2000 CE (`mya`…), which round the same as before. **Docs.** `docs/time-presentation.md`, Gregorian ruler graduations. **Tests.** - `test/ruler.test.mjs`: new test of the printed labels at 1000-, 100- and 10-year graduations across the eras, the Egypt span, single years, and a CE-only view (fails on main, passes here). - `test/ruler-browser.mjs`: the civil ruler check also goes to 3500 BCE – 100 CE and reads the labels. - `npm test`, `npm run typecheck`, prettier and the chromium browser suite pass.
Sources
Open #355 · Ruler year marks round in BCE numbering, meeting CE at 1 CE in the timeline