calculateNewTimeFromMonth static method
Implementation
static int calculateNewTimeFromMonth(DateTime date, int months) {
// 计算新的年份和月份
int newYear = date.year;
int newMonth = date.month + months;
// 处理月份进位
while (newMonth > 12) {
newYear++;
newMonth -= 12;
}
// 处理月份借位
while (newMonth < 1) {
newYear--;
newMonth += 12;
}
// 处理目标月份天数不足的情况
final daysInNewMonth = DateTime(newYear, newMonth + 1, 0).day;
final newDay = date.day > daysInNewMonth ? daysInNewMonth : date.day;
return DateTime(newYear, newMonth, newDay, date.hour, date.minute, date.second, date.millisecond, date.microsecond).millisecondsSinceEpoch;
}