I'm interested in the logic behind moving between dates in the context of different calendars. For instance, adding one day to Friday, 2nd June 2017 in the usual calendar gives Saturday, 3rd of June 2017. However, adding one day to Friday, 2nd of June 2017 in a calendar excluding weekends goes to Monday, 5th of June 2017. I also want to define calendars with more complex rules, and define unions and intersections of calendars.
I think that I can define a calendar with a predicate P that says whether a date is a member of that calendar, and a function S that moves one day forward in that calendar. Maybe I'd need some extra rules on S to forbid loops and require stuff like closure or associativity.
I thought the concept I was expressing here was a group, but wikipedia says:
A group is an algebraic structure consisting of a set of elements equipped with an operation that combines any two elements to form a third element.
And it doesn't make sense to add two dates together. I think I'm mostly interested in adding dates to integers.
Is there a name for this concept, or an abstraction of this concept?