diff --git a/src/api/calendar/Calendar.ts b/src/api/calendar/Calendar.ts index bbc0edfbf..d9515c08a 100644 --- a/src/api/calendar/Calendar.ts +++ b/src/api/calendar/Calendar.ts @@ -82,7 +82,7 @@ class Calendar { const y = date[1] === 1 ? date[0] - 1 : date[0]; const m = date[1] === 1 ? 12 : date[1] - 1; let w = DateClass.solarMonth(y, m); - // console.log("获取当月前面需补齐的数组-->",y,m,w,last) + console.log("获取当月前面需补齐的数组-->",y,m,w,last) const arr: dateBase[] = []; for (let i = 0; i < last; i++) { const lun = DateClass.getLunars(y, m, w - i); @@ -171,13 +171,17 @@ class Calendar { const result = this.validateDate(date); const currentDay = DateClass.solarWeeks(result[0], result[1]); - // console.log("获取当月的完整数据",currentDay,result) + console.log("获取当月的完整数据",currentDay,result) // 获取当月的完整数据 const beforDays = this.beforDays(date, currentDay).reverse(); const m = this.getDay(date, beforDays); + + console.log("获取当月的完整数据--->",m,date) + const afterDays = this.afterDays(m, date); + // 转化成参数 const params = this.getDateParams(afterDays, date); @@ -190,6 +194,58 @@ class Calendar { // console.log("日历数据",dateArray) return dateArray; } + //获得一周的所有日期 + getWeekNumber(year: number, month: number, taday: number) { + let dateStr = year + "-" + month + "-" + taday; // 要转换的日期字符串 + let now = new Date(dateStr); + let nowTime = now.getTime(); + let second = nowTime % 86400000; + let day = (now.getDay() + 6) % 7; + let endTime = nowTime - second + new Date().getTimezoneOffset() * 60000 - day * 86400000; + // var dataAry = new Array + // for(let i = 0; i <7; i++) { + let nextWeekFirstDatysss = new Date(endTime ); + // let y: any = nextWeekFirstDaty.getFullYear(); + // let m: any = nextWeekFirstDaty.getMonth() + 1; + // let d: any = nextWeekFirstDaty.getDate(); + // dataAry.push([y,m,d]) + // } + + console.log("获得一周的所有日期---------------->",dateStr,now.getDay(),day,nextWeekFirstDatysss,endTime) + + + let currentTime = DateClass.getCurrent() + const dateArray: dateBase[] = []; + for(let i = 0; i <7; i++) { + let nextWeekFirstDaty = new Date(endTime + 86400000*(i+1) ); + let y: any = nextWeekFirstDaty.getFullYear(); + let m: any = nextWeekFirstDaty.getMonth() + 1; + let d: any = nextWeekFirstDaty.getDate(); + const lun = DateClass.getLunars(y, m, d); + const l = lun.split('-'); + console.log("获得一周的所有日期",i,d,endTime + 86400000*(i+1)) + dateArray.push({ + title: d, + isCurrent: true, + isHolidays: DateClass.getHolidays([y, m, d + i]), + isWorks: DateClass.getWorks([y, m, d - i]), + date: `${y}-${clockFactory(m)}-${clockFactory(d + i)}`, + lunars: lun, + lunarsChinese: + DateClass.toChinaMonth(Number(l[1])) + DateClass.toChinaDay(Number(l[2])), + lunarsChina: DateClass.toChinaDay(Number(l[2])), + isNow: currentTime[2] === d ? true : false, + solarDay: DateClass.getSolarDay(m, d + i), + lunarDay: DateClass.getlunarDay(Number(l[0]), Number(l[1]), Number(l[2])), + animal: DateClass.getAnimal(Number(l[0])), + astro: DateClass.toAstro(y, m, d + i), + term: getTerm(Number(l[0]), m, d + i), + + }); + } + return dateArray + + } } export default new Calendar(); diff --git a/src/api/calendar/DateClass.ts b/src/api/calendar/DateClass.ts index b860c411b..e48cbafc9 100644 --- a/src/api/calendar/DateClass.ts +++ b/src/api/calendar/DateClass.ts @@ -98,8 +98,11 @@ class DateClass { * @returns {string} 返回农历日期通俗表示法:‘初一’ */ toChinaDay(d: number) { + let str = d == 10 ? constValue.nStr2[0] : constValue.nStr2[Math.floor(d / 10)]; - return str + (d % 10 ? constValue.nStr5[d % 10] : constValue.nStr5[10]); + + // console.log('返回农历日期通俗表示法',d,str) + return str + (d % 10 ? constValue.nStr1[d % 10] : constValue.nStr1[10]); } /** * 农历年份转生肖 @@ -322,6 +325,12 @@ class DateClass { moveTime(y: number, m: number, d: number,t?:number){ switch(t){ case 2: + let startWeek = this.getMonday(y,m,d,'s',1) + let endWeek = this.getMonday(y,m,d,'e',1) + return { + start:startWeek, + end:endWeek + } break; case 3: break; @@ -348,12 +357,12 @@ class DateClass { @ 功能: 处理年月日回退数据 @ 1: 月;2:周;3:天 */ - gobackTime(y: number, m: number, d: number,t?:number){ + gobackTime(y: number, m: number, d: number,t?:number, dt?:number){ // console.log("计算时间--0--》",y,m,d,t) switch(t){ case 2: - let startWeek = this.getMonday(y,m,d,'s',-1) - let endWeek = this.getMonday(y,m,d,'e',-1) + let startWeek = this.getMonday(y,m,d,'s',dt?dt:0) + let endWeek = this.getMonday(y,m,d,'e',dt?dt:0) return { start:startWeek, end:endWeek @@ -382,7 +391,7 @@ class DateClass { y = y -1; m = 12 d = this.solarMonth(y,m) - console.log("计算时间--1--》",y,m,d) + // console.log("计算时间--1--》",y,m,d) }else{ m = month let day = this.solarMonth(y,month) @@ -419,11 +428,7 @@ class DateClass { - // console.log("now--->",now) - // console.log("nowTime--->",nowTime) - // console.log("day--->",day) - // console.log("longTime--->",longTime) - // console.log("n--->",n) + @@ -439,12 +444,19 @@ class DateClass { let d: any = date.getDate(); // m = m < 10 ? "0" + m : m; // d = d < 10 ? "0" + d : d; + + + // console.log("now--->",date) + // console.log("nowTime--->",nowTime) + // console.log("day--->",day) + // console.log("longTime--->",longTime) + // console.log("n--->",n) + let days = y + "-" + m + "-" + d; return [y, m, d]; } - //获得上周的开始日期 - // getLastWeekStartDate() + } export default new DateClass(); diff --git a/src/components/DesignForm/app/calendar/calendar1/calendarPage.vue b/src/components/DesignForm/app/calendar/calendar1/calendarPage.vue index bdf0267d3..fb241e76f 100644 --- a/src/components/DesignForm/app/calendar/calendar1/calendarPage.vue +++ b/src/components/DesignForm/app/calendar/calendar1/calendarPage.vue @@ -74,10 +74,10 @@ const backTime = () =>{ } if(curtteDayType.value != 2){ - taday.value = DateClass.gobackTime(taday.value[0],taday.value[1],taday.value[2],curtteDayType.value) + taday.value = DateClass.gobackTime(taday.value[0],taday.value[1],taday.value[2],curtteDayType.value,-1) }else{ - let weekObject = DateClass.gobackTime(taday.value.start[0],taday.value.start[1],taday.value.start[2],curtteDayType.value) + let weekObject = DateClass.gobackTime(taday.value.start[0],taday.value.start[1],taday.value.start[2],curtteDayType.value,-1) taday.value = weekObject } @@ -158,7 +158,7 @@ const goTady = () => {