showCourse() {//初始化判断当前日期所在的周次
var dateArray = [];
//开始查询日期
var date =JSON.parse(JSON.stringify(new Date(2020,2,2)));//设置初始开学日期,注意:这里第二个参数2表示3月,即开学日期为2019年3月2日
date = new Date(date)
var dateTemp;
//第一周天数不确定
if(date.getDay() ==1){//星期一
for(var i=1;i<8;i++){//默认星期一为每周的起点
if(i==1){//如果是每周的星期一,需要添加周期,其他的每天加一就行了,因为data的值会跟着setDate()而发生变化。
date.setDate(date.getDate());//js中字符串和整型是可以做整数减法的,但加法就是字符串相加
}
else{
date.setDate(date.getDate()+1);
}
//date.getMonth()是从0开始的,所以实际月份需要+1
dateArray.push(date.getFullYear() +"年"+ (date.getMonth()+1) +"月"+ date.getDate()+"日")
this.dateArr = dateArray
}
}else if(date.getDay() ==0){//星期天
for (var i = 0; i < 8; i++) {
dateTemp = date.getFullYear() +"年"+(date.getMonth() + 1) + "月" + date.getDate()+"日";
dateArray.push(dateTemp);
date.setDate(date.getDate() + this.flag);
}
this.dateArr = dateArray.slice(1)
}else{//除了星期天
for (var i = 0; i < 7; i++) {
dateTemp = date.getFullYear()+"年"+(date.getMonth() + 1) + "月" + date.getDate()+"日";
dateArray.push(dateTemp);
date.setDate(date.getDate() + this.flag);
}
this.dateArr = dateArray.slice(0,7-date.getDay()+1)
}
this.nDate = new Date()
var styfrom_start = Math.ceil((this.nDate - new Date(this.sDate))/(24*60*60*1000)) //现在日期到开学日期天数判断所在周数
this.weekNum = Math.ceil((styfrom_start-this.dateArr.length)/7)+1
var approvedates = this.dateArr[this.dateArr.length-1].replace(/[年月]/g,"-");
var approvedate = approvedates.replace(/[日]/,"");
var afterDate = new Date(approvedate)
//获取所在周数的日期
for (var i = 0; i < this.weekNum; i++) {
dateTemp = afterDate.getFullYear() +"-"+(afterDate.getMonth() + 1) + "-" + afterDate.getDate();
this.nowArr.push(dateTemp);
afterDate.setDate(afterDate.getDate() + this.weekDay);
}
var timeStr1 =new Date(this.nowArr[this.nowArr.length-1]) //所在周数最后天数
var timeStr2 =new Date(this.nowArr[this.nowArr.length-2])//所在周数第一天数
var beforeDate =new Date(timeStr2.setDate(timeStr2.getDate() + 1))
if((timeStr1 - new Date(this.eDate.replace(/[年月]/g,"-").replace(/[日]/,""))>0)){
this.renderArr[1] = this.eDate
}else{
this.renderArr[1] = timeStr1.getFullYear() +"年"+(timeStr1.getMonth() + 1) + "月" + timeStr1.getDate()+ '日'
}
this.renderArr[0] = beforeDate.getFullYear() +"年"+(beforeDate.getMonth() + 1) + "月" + beforeDate.getDate()+ '日'
this.getClass()
},
nextWeek(){//下一周
if(this.renderArr[1]== this.eDate){
dsf.layer.toast("这已经是这学期最后一周了!")
return
}
this.weekNum++
var approvedates = this.renderArr[1].replace(/[年月]/g,"-");
var approvedate = approvedates.replace(/[日]/,"");
var dateTemp;
var dateArray = []
var date = new Date(approvedate)
for (var i = 0; i < 7; i++) {
date.setDate(date.getDate() + this.flag);
dateTemp = date.getFullYear()+"年"+(date.getMonth() + 1) + "月" + date.getDate()+"日";
dateArray.push(dateTemp);
}
this.dateArr = dateArray
this.renderArr[0] = this.dateArr[0]
for(var j=0;j<this.dateArr.length;j++){
if(this.dateArr[j] == this.eDate){
this.renderArr[1] = this.eDate
this.dsf.layer.toast('这已经是这学期最后一周了')
return
}
}
this.renderArr[1] = this.dateArr[this.dateArr.length-1]
},
lastWeek(){//上一周
if(this.weekNum > 1){this.weekNum--}
else{
dsf.layer.toast("这是这学期的第一周!")
return
}
var approvedates = this.renderArr[0].replace(/[年月]/g,"-");
var approvedate = approvedates.replace(/[日]/,"");
var dateTemp;
var dateArray = []
var date = new Date(approvedate)
date.setDate(date.getDate() - 7);
for (var i = 0; i < 7; i++) {
dateTemp = date.getFullYear()+"年"+(date.getMonth() + 1) + "月" + date.getDate()+"日";
date.setDate(date.getDate() + this.flag);
dateArray.push(dateTemp);
}
this.sDate = new Date(this.sDate)
if(this.sDate.getDay() == 0){//第一周考虑开学日期是否为星期天
this.startDate = this.sDate.getFullYear()+"年"+(this.sDate.getMonth() + 1) + "月" + (this.sDate.getDate()+1)+"日"
}else{//第一周开学日期除了星期天之外的
this.startDate = this.sDate.getFullYear()+"年"+(this.sDate.getMonth() + 1) + "月" + this.sDate.getDate()+"日"
}
if(this.weekNum == 1){//第一周天数可能少于七天
var week_one = dateArray.findIndex((v)=>{
return v == this.startDate
})
week_one >= 0 ?
this.dateArr = dateArray.slice(week_one) : ''
}else{
this.dateArr = dateArray
}
this.renderArr[0] = this.dateArr[0]
this.renderArr[1] = this.dateArr[this.dateArr.length-1]
}
按周切换的vue移动端学生课表日期
最新推荐文章于 2024-06-04 16:14:42 发布