For anyone thinking about this, the JS library luxon has a really great write-up about calendar-math vs. time-math: