UNPKG

hae

Version:

Mobile web UI based on Vux

75 lines (67 loc) 1.67 kB
function isLeapYear (year) { return year % 100 !== 0 && year % 4 === 0 || year % 400 === 0 } function getMaxDay (year, month) { year = parseFloat(year) month = parseFloat(month) if (month === 2) { return isLeapYear(year) ? 29 : 28 } return [4, 6, 9, 11].indexOf(month) >= 0 ? 30 : 31 } function getYears (startDate, endDate) { let startYear = startDate.getFullYear() const endYear = endDate.getFullYear() let rs = [] while (startYear <= endYear) { rs.push(startYear) startYear++ } return { minYear: rs[0], maxYear: rs[rs.length - 1] } } function getMonths (startDate, endDate, year) { const startYear = startDate.getFullYear() const endYear = endDate.getFullYear() const startMonth = startDate.getMonth() + 1 const endMonth = endDate.getMonth() + 1 let start = 1 let end = 12 if (year === startYear) { start = startMonth } if (year === endYear) { end = endMonth } return { minMonth: start, maxMonth: end } } function getDays (startDate, endDate, year, month) { const startYear = startDate.getFullYear() const endYear = endDate.getFullYear() const startMonth = startDate.getMonth() + 1 const endMonth = endDate.getMonth() + 1 const startDay = startDate.getDate() const endDay = endDate.getDate() let start = 1 let end = getMaxDay(year, month) if (year === startYear && month === startMonth) { start = startDay } if (year === endYear && month === endMonth) { end = endDay } return { minDay: start, maxDay: end } } export { getYears, getMonths, getDays }