JS如何優(yōu)雅的判斷閏年

對于js中的Date對象,我們new Date()后做的最多的操作就是getTime()、getFullYear()、getMonth()、getSecond(),在實際開發(fā)中幾乎很少會用到getDate()這個方法,因為應(yīng)用場景太少了。在工作中我們經(jīng)常會需要判斷某個年份是否是閏年這個需求,以前我們都是使用一套公式算出來的,這個方法比較麻煩,并且公式還記不住。getDate()方法就是我們的福音,用它可以很方便的實現(xiàn)判斷閏年的需求!

1.1、getDate()方法的使用

new Date()方法可以傳遞3個參數(shù),如:new Date(年,月,數(shù)字);

1、new Date()第三個參數(shù)為0或為負(fù)數(shù)

/* 28,表示獲取2018年2月份的最后一天,即獲取2018年2月份的倒數(shù)第一天。*/
new Date(2018,2,0); // 28
new Date(2018,2,-1); // 27
new Date(2018,2,-2); // 26
new Date(2018,4,0); // 30
new Date(2020,2,0); // 29

1.2、new Date()第三個參數(shù)為正數(shù)
當(dāng)?shù)谌齻€參數(shù)為正數(shù)時表示獲取該數(shù)字在(月份+1)中的第幾天,如果數(shù)字大于(月份+1)的最大天數(shù),則月份往下再加1,然后再進(jìn)行計算。

/* 25,表示獲取2018年4月份25日在當(dāng)月中的序號 */
new Date(2018,3,25); // 25
/* 1,因為4月份沒有31號,因此月份再加1,序號變?yōu)?1-30(30為4月份最大天數(shù)),即獲取的是5月份1號在5月份中的序號 */
new Date(2108,3,31); // 1
new Date(2108,3,32); // 2

2、判斷年份是否是閏年

2.1、使用getDate()方法判斷年份是否為閏年


/* 當(dāng)new Date()第三個參數(shù)為0時可以獲取2018年2月份的最后一天,如果2月份的最后一天是29,那么該年就是閏年 */
var days = new Date(2018,2,0); // 28
if(days == 29){
    console.log("2018年是閏年");
}else{
    console.log("2018年不是閏年");
}

2.2、使用公式計算是否是閏年

var year = new Date().getFullYear();
if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){
    console.log(year + "年是閏年");
}else{
    console.log(year + "年不是閏年");
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。