It makes sense to add a Duration to a DateAndTime.
It does not make sense to add a Duration to a Date.
I can't check Pharo because I haven't managed to
get it working on this laptop (x86-64 + ubuntu 17),
but Squeak has Date>>addMonths: (edited for clarity):
addMonths: monthCount
������ |m year month maxDaysInMonth day|
������ m := monthCount + self monthIndex - 1.
������ year := m // 12 + self year.
������ month := m \\ 12 + 1.
������ maxDaysInMonth := Month daysInMonth: month forYear: year.
������ day := self dayOfMonth min: maxDaysInMonth.
������ ^ Date
������ ������ newDay: day
������ ������ month: month
������ ������ year: year
This may or may not do what your customer wants.