calendarAddMonths function
Implementation
DateTime calendarAddMonths(DateTime dt, int months) {
var y = dt.year;
var m = dt.month + months;
y += (m - 1) ~/ 12;
m = ((m - 1) % 12) + 1;
final d = dt.day;
final maxDay = _daysInMonth(y, m);
final day = d > maxDay ? maxDay : d;
return dt.isUtc
? DateTime.utc(y, m, day, dt.hour, dt.minute, dt.second, dt.millisecond, dt.microsecond)
: DateTime(y, m, day, dt.hour, dt.minute, dt.second, dt.millisecond, dt.microsecond);
}