if you have ever thought how to accomplish a simple calendar. you'll konw what I'm talking about
每个月有多少天?
- 1月,3月,5月,7月,8月,10月,12月,都是31天
- 2月平年是28天,闰年是29天
- 其他月份:4月,6月,9月,11月
每个月的第一天是星期几?
function firstDay(date) {
return new Date(date + '-01').getDay()
}
判断闰年还是平年
function is_leap(year) {
return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0 ? true : false
}
获取某一年各月的天数
function m_days(year) {
return [31,28+is_leap(year),31,30,31,30,31,31,30,31,30,31]
}
获取某年某月的第一天是星期几
function firstDay(date) {
return new Date(date + '-01').getDay()
}
获取每个月的天数数组
function generateDays(date) {
var year = date.split('-')[0]
var month = date.split('-')[1] - 1
var arr = []
//根据某年某月的第一天是星期几来填充空值
for(let j = 0; j < firstDay(date); j++) {
arr.push({value: '', num: ''})
}
for(let i = 0; i < m_days(year)[month]; i++) {
let value = year + '-' + addZero(month+1) + '-' + addZero(i+1)
arr.push({
num: addZero(i+1),
value: value,
})
}
return arr
}