Generalize date handling to accept arbitrary increments and time units rather than assuming years.