- time 的格式为"yyyy-MM"
- num 的格式为n,n为正数表示加月份,为负数表示减月份
export function calcMonths(time, num) {
let arr = time.split("-"); // 将 "yyyy-MM" 日期分解为 ["2021","09"]
let year = parseInt(arr[0], 10);
let month = parseInt(arr[1], 10);
month = month + num;
if (month > 12) {
let newYear = parseInt((month - 1) / 12, 10);
month = month % 12 == 0 ? 12 : month % 12;
year += newYear;
} else if (month <= 0) {
month = Math.abs(month);
let newYear = parseInt((month + 12) / 12, 10);
let n = month % 12;
if (n == 0) {
year -= newYear;
month = 12;
} else {
year -= newYear;
month = Math.abs(12 - n);
}
}
month = month < 10 ? "0" + month : month;
return year + "-" + month;
}