微信小程序简单日历(公历)的实现周六加班的时候,突然想看看日历是怎么实现的,于是尝试了一下写下来。-------------分向線---------------JS部分//pages/calendar/calendar.jsPage({/***页面初始数据*/data:{week:["One","Two","Three","Four","Five","Six","Day"],//weekmaxDayList:[31,28,31,30,31,30,31,31,30,31,30,31],//一年12个月,每个月的天数初始化为正常年份nowYear:newDate().getFullYear(),//当前年份nowMonth:newDate().getMonth()+1,//当前月份totalDay:[],//Calendardays},/***切换年月*/changeDate(e){lettype=e.currentTarget.dataset.type;letnowYear=this.data.nowYear;letnowMonth=this.data.nowMonth;switch(type){case"preYear"://上一年nowYear-=1;this.setData({nowYear});break;case"preMonth"://上个月nowMonth-=1;if(nowMonth<=0){nowMonth=12;nowYear-=1;}break;case"nextMonth"://下个月nowMonth+=1;if(nowMonth>=13){nowMonth=1;nowYear+=1;}break;case“恩xtYear"://下一年nowYear+=1;break;}this.setData({nowYear,nowMonth});this.initCalendar();},/***初始化日历*/initCalendar(){letmaxDayList=this.data.maxDayList;设年=this.data.nowYear,月=this.data.nowMonth;if((year%4==0&&year%100!=0)||year%400==0){//计算当前年份是否为闰年,规则:能被4整除且不能被100整除的年份,或者能被400整除的年份maxDayList[1]=29;//二月29天}else{//平年maxDayList[1]=28;//2月28天}this.setData({maxDayList});letfirstDayWeek=newDate(year+"-"+month+"-1").getDay();//1当月的第几天是星期几firstDayWeek=firstDayWeek>0?firstDayWeek:7;//星期日从0到7letendDayWeek=newDate(year+"-"+month+"-"+maxDayList[month-1]).getDay();//当月的最后一天是星期几endDayWeek=endDayWeek>0?endDayWeek:7;//星期日从0变为7letbeforArr=[],afterArr=[];//beforArr:要求本月1号之前补上个月的最后几天,afterArr:补本月末下月初//求补的天数上个月for(leti=0;我
