实现功能:左滑返回上一个月,右滑下一个月,支持农历,下拉展示记录日志,持续更新
思路:
获取本月日历中的上个月显示日期以及下个月显示日期,通过数组展现
核心代码;
getCurrentMonVal(year,month){month = month - 1let getWeekday = calendar.getWeekday(year,month)let getPreMonthCount = calendar.getPreMonthCount(year,month)let getMonthCount = calendar.getMonthCount(year,month)let preMon = []let mon = []let nextMon = []// 获取上个月内容(置灰部分)for (let i = getPreMonthCount.length - getWeekday+1; i <= getPreMonthCount.length; i++) {let lunarDay = getLunar(calendar.getPreMonth(year,month+1).year, calendar.getPreMonth(year,month+1).month, i)let solarFestival = festival.getSolarFestival(calendar.getPreMonth(year,month+1).month, i)let lunarFestival = festival.getLunarFestival(lunarDay.lunarMonth,lunarDay.lunarDate)preMon.push({solar: i,isCurrentMon: false,lunarDay: lunarDay,solarFestival: solarFestival, // 阳历节日lunarFestival: lunarFestival, // 农历节日isFestival: solarFestival || lunarFestival || lunarDay.solarTerm,agendas: data.agendas[calendar.dateFormater(calendar.getPreMonth(year,month+1).year, calendar.getPreMonth(year,month+1).month, i)]})}// 获取本月数据for (let i = 1; i <= getMonthCount.length; i++) {let lunarDay = getLunar(year, month+1, i)let solarFestival = festival.getSolarFestival(month+1, i)let lunarFestival = festival.getLunarFestival(lunarDay.lunarMonth,lunarDay.lunarDate)mon.push({solar: i,isCurrentMon: true,lunarDay: lunarDay,solarFestival: festival.getSolarFestival(month+1, i),lunarFestival: festival.getLunarFestival(lunarDay.lunarMonth,lunarDay.lunarDate), // 农历节日isFestival: solarFestival || lunarFestival || lunarDay.solarTerm,agendas: data.agendas[calendar.dateFormater(year, month+1, i)]})}// 获取下个月数据(置灰部分)for (let i = 1; i <= ((getWeekday+getMonthCount.length)<=35?35-getWeekday-getMonthCount.length:42-getWeekday-getMonthCount.length); i++) {let lunarDay = getLunar(calendar.getNextMonth(year,month+1).year, calendar.getNextMonth(year,month+1).month, i)let solarFestival = festival.getSolarFestival(calendar.getNextMonth(year,month+1).month, i)let lunarFestival = festival.getLunarFestival(lunarDay.lunarMonth,lunarDay.lunarDate)nextMon.push({solar: i,isCurrentMon: false,lunarDay: lunarDay,solarFestival: solarFestival,lunarFestival: lunarFestival, // 农历节日isFestival: solarFestival || lunarFestival || lunarDay.solarTerm,agendas: data.agendas[calendar.dateFormater(calendar.getNextMonth(year,month+1).year, calendar.getNextMonth(year,month+1).month, i)]})}return preMon.concat(mon).concat(nextMon)},
项目地址:/lhyu/calendar