yet more refactoring of CalendarDay