UNPKG

uni-query

Version:

🐠 为uniapp设计的开源组件库,专注最重要的核心组件

54 lines (45 loc) 1.38 kB
// 计算某月多少天 export let calcDays = function (year: number, month: number) { if (month == 2) { if ((year % 4 != 0) || (year % 100 == 0 && year % 400 != 0)) { return 28; } else { return 29; } } else { return [31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month - 1]; } }; // 计算某月日历视图的天数组 export let calcDaysArray = function (year: number, month: number) { let daysArray = []; // 0->周日 1->周一 ... 6->周六 let index = new Date(year + '/' + month + '/1').getDay(); // 前置多少天 let preNum = index - 1; if (preNum == -1) preNum = 6; let preMonthDays = calcDays(month == 1 ? year - 1 : year, month == 1 ? 12 : month - 1); for (let i = 0; i < preNum; i++) { daysArray.push({ value: preMonthDays - i + 1, type: "pre" }); } // 本月多少天 let curNum = calcDays(year, month); for (let i = 1; i <= curNum; i++) { daysArray.push({ value: i, type: "day" }); } // 后置多少天 let nextNum = 42 - preNum - curNum; for (let i = 1; i <= nextNum; i++) { daysArray.push({ value: i, type: "next" }); } return daysArray; }