The original French Republican Calendar determined the start of the year with the date of the autumnal equinox at the Paris Observatory. This made the calendar somewhat unpredictable, as it required a lot of astronomy to figure out the start of the year (and thus whether the previous year was a leap year). These days, it's common to see versions floating around with the same leap year rules as the Gregorian calendar instead of the original rules, leading to weird cases like having the wrong leap years compared to what happened historically.<p>I got nerd-sniped into making a calendar following the original rules and tried to see how far I can push it with modern astronomy, and this is the result.
Moon orbit (from there comes the original week and month) doesn't have to be proportional to Earths rotation (day), nor any of them with Earth's orbit around the sun (year and seasons). Those divisions had some original real life meanings (it was easier to track time by moon phases, and it was important to have a clue on where a season will start for agriculture) but being more accurate meant that some of those old meanings became more decorative or convention than something necessary. And things are a bit more complicated for agriculture than just the start of the seasons anyway (plants may be flowering earlier due to climate change)<p>Things would had been easier if our world behaved like i.e. Stardew Valley year (4 months=seasons, 28 days/4 weeks each month, no leap years, and the start of each season mean an abrupt change of conditions)
It does that annoying thing where it immediately adds a history state as soon as the page loads, so that the back button doesn't do anything. Would be nice to see this fixed. Otherwise well done.
In “Time & The Art of Living”, Robert Grudin structured his chapters and verses after this calendar.<p>In the last (or so) chapter he explicitly discusses decimal time, and the beauty of being able to calculate and reason about the calendar.<p>He also made some suggestions on using 20-hour days as a way of making it slightly more compatible to the 24-hour day.
If the time portion of the view isn't using `requestAnimationFrame`, it probably should be. Otherwise deferring to `setInterval` sets a weird cadence for the time changing.