This thread inspired me to open-source Dated, a package we’ve developed to manage floating dates. At its core, Dated introduces a LocalDate type, which combines a date with a timezone for use in the source of truth. Additionally, it provides a suite of floating date types. These include CalendarDate (a wall calendar date with second-level precision), as well as more specialized types like Day, Week, Month, and Year. We persist these types in caches that are invalidated when the user's preferred calendar changes.
I’m curious to hear what everyone thinks about this approach. There seem to be a lot of people in this thread who know a lot more about dates than I do.