素材巴巴 > 程序开发 >

JS/Angular 非自然月的月份增加(适应闰年)

程序开发 2023-09-11 20:39:10
// 判断闰年代码public isLeapYear(Year) {if (((Year % 4) == 0) && ((Year % 100) != 0) || ((Year % 400) == 0)) {return (true);} else {return (false);}}// 非自然月public setMonth(date, num) {date = new Date(date);let day = date.getDate();date.setMonth(date.getMonth() + (num * 1), 1);// getMonth()的取值范围0~11,所以这里加一let mo = date.getMonth() + 1; // 小月if (mo == 4 || mo == 6 || mo == 9 || mo == 11) {if (day > 30) {day = 30}}// 2月else if (mo == 2) {if (this.isLeapYear(date.getFullYear())) {if (day > 29) {day = 29}} else if (day > 28) {day = 28}}// 大月else {if (day > 31) {day = 31}}return new Date(date.getFullYear(), date.getMonth(), day)}借鉴自https://www.cnblogs.com/linyijia/p/6118835.html↓↓↓↓短小精悍的写法↓↓↓↓public setMonth(now, addMonth) {let targetDate = 1;let target = new Date(now.getFullYear(), now.getMonth() + addMonth, targetDate);let maxDays = new Date(target.getFullYear(), target.getMonth() + 1, 0).getDate();targetDate = now.getDate();if (now.getDate() > maxDays) {targetDate = maxDays;}return target.setDate(targetDate);}
 

【效果图】


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。