电影网站开发技术,镇江优化九一,深圳市建设管理中心网站首页,网站网站建设设计自定义一周的开始和结束#xff0c;计算日期所在月的周数、所在月第几周、所在周的日期范围一. 方法使用二. 实现案例一. 方法使用 根据月开始日期星期几、月结束日期星期几#xff0c;计算始周、末周占月的天数#xff08;每周周期段#xff1a;上周六 —— 本周五#x…
自定义一周的开始和结束计算日期所在月的周数、所在月第几周、所在周的日期范围一. 方法使用二. 实现案例一. 方法使用 根据月开始日期星期几、月结束日期星期几计算始周、末周占月的天数每周周期段上周六 —— 本周五 getStrEndDay(str_week, end_week) {// 始周占月的天数开始周几(str_week) 距离 结束(周五) 有几天let str_num 0;switch (str_week) {case 1:str_num 5;break;case 2:str_num 4;break;case 3:str_num 3;break;case 4:str_num 2;break;case 5:str_num 1;break;case 6:str_num 7;break;case 7:str_num 6;break;}// 末周占月的天数开始(周六) 距离 结束周几(end_week) 有几天let end_num 0;switch (end_week) {case 1:end_num 3;break;case 2:end_num 4;break;case 3:end_num 5;break;case 4:end_num 6;break;case 5:end_num 7;break;case 6:end_num 1;break;case 0:end_num 2;break;}return { str_num, end_num };
}根据年月获取每月有几周 getWeekCount(year, month) {// 获取天数var day_num new Date(year, month, 0).getDate();// 该月第一天、最后一天const str_day new Date().setFullYear(year, month - 1, 1);const end_day new Date().setFullYear(year, month, 0);//该月第一周、最后一周const str_week new Date(str_day).getDay();const end_week new Date(end_day).getDay();// 该月减去第一周、最后一周的天数const numRes this.getStrEndDay(str_week, end_week);const oth_day day_num - numRes.end_num - numRes.str_num;// 总周数let week_num oth_day / 7;if (numRes.str_num 7) {week_num 1;}if (numRes.end_num ! 0) {week_num 1;}return week_num;
}根据年月日获取当前周 getCurWeek(year, month, day) {// 该月第一天、最后一天const str_day new Date().setFullYear(year, month - 1, 1);const end_day new Date().setFullYear(year, month, 0);//该月第一周、最后一周const str_week new Date(str_day).getDay();const end_week new Date(end_day).getDay();// 该月减去第一周的天数const numRes this.getStrEndDay(str_week, end_week);const oth_day day - numRes.str_num;// 第几周let cur_week Math.ceil(oth_day / 7);if (numRes.str_num 7) {cur_week 1;}return cur_week;
}根据年、月、周获取周的日期 getWeekTime(year, month, week) {// 获取天数var day_num new Date(year, month, 0).getDate();// 该月第一天、最后一天const str_day new Date().setFullYear(year, month - 1, 1);const end_day new Date().setFullYear(year, month, 0);//该月第一周、最后一周const str_week new Date(str_day).getDay();const end_week new Date(end_day).getDay();const numRes this.getStrEndDay(str_week, end_week);// 该周开始、结束日期let str_time (week - 1) * 7 1;let end_time week * 7;if (numRes.str_num ! 7) {str_time numRes.str_num;end_time numRes.str_num;}let mm Number(month);mm mm 10 ? 0 mm : mm;str_time str_time 10 ? 0 str_time : str_time;end_time end_time 10 ? 0 end_time : end_time;let strDate year - mm - str_time;let endDate year - mm - end_time;if (Number(end_time) day_num) {let mm1 Number(mm) 1 10 ? 0 (Number(mm) 1) : Number(mm) 1;let last_num Number(end_time) - day_num;last_num last_num 10 ? 0 last_num : last_num;endDate year - mm1 - last_num;}return {strDate,endDate};
}二. 实现案例
templatedivHome/div
/templatescript
export default {data() {return {};},mounted() {// 自定义一周的开始和结束计算日期所在月的周数、所在月第几周、所在周的日期范围const date new Date(); //需要计算的日期const yy date.getFullYear();const mm (date.getMonth() 1 ).padStart(2, 0);const dd (date.getDate() ).padStart(2, 0);console.log(计算日期${yy}年${mm}月${dd}日);const week_count this.getWeekCount(yy, mm);console.log(${yy}年${mm}月总共${week_count}周);const week_cur this.getCurWeek(yy, mm, dd);console.log(${yy}年${mm}月${dd}日属于本月第${week_cur}周);const days this.getWeekTime(yy, mm, week_cur);console.log(${yy}年${mm}月第${week_cur}周日期段为${days.strDate} —— ${days.endDate});},methods: {// 根据月开始日期星期几、月结束日期星期几计算始周、末周占月的天数每周周期段上周六 —— 本周五getStrEndDay(str_week, end_week) {// 始周占月的天数开始周几(str_week) 距离 结束(周五) 有几天let str_num 0;switch (str_week) {case 1:str_num 5;break;case 2:str_num 4;break;case 3:str_num 3;break;case 4:str_num 2;break;case 5:str_num 1;break;case 6:str_num 7;break;case 7:str_num 6;break;}// 末周占月的天数开始(周六) 距离 结束周几(end_week) 有几天let end_num 0;switch (end_week) {case 1:end_num 3;break;case 2:end_num 4;break;case 3:end_num 5;break;case 4:end_num 6;break;case 5:end_num 7;break;case 6:end_num 1;break;case 0:end_num 2;break;}return { str_num, end_num };},// 根据年月获取每月有几周getWeekCount(year, month) {// 获取天数var day_num new Date(year, month, 0).getDate();// 该月第一天、最后一天const str_day new Date().setFullYear(year, month - 1, 1);const end_day new Date().setFullYear(year, month, 0);//该月第一周、最后一周const str_week new Date(str_day).getDay();const end_week new Date(end_day).getDay();// 该月减去第一周、最后一周的天数const numRes this.getStrEndDay(str_week, end_week);const oth_day day_num - numRes.end_num - numRes.str_num;// 总周数let week_num oth_day / 7;if (numRes.str_num 7) {week_num 1;}if (numRes.end_num ! 0) {week_num 1;}return week_num;},// 根据年月日获取当前周getCurWeek(year, month, day) {// 该月第一天、最后一天const str_day new Date().setFullYear(year, month - 1, 1);const end_day new Date().setFullYear(year, month, 0);//该月第一周、最后一周const str_week new Date(str_day).getDay();const end_week new Date(end_day).getDay();// 该月减去第一周的天数const numRes this.getStrEndDay(str_week, end_week);const oth_day day - numRes.str_num;// 第几周let cur_week Math.ceil(oth_day / 7);if (numRes.str_num 7) {cur_week 1;}return cur_week;},// 根据年、月、周获取周的日期getWeekTime(year, month, week) {// 获取天数var day_num new Date(year, month, 0).getDate();// 该月第一天、最后一天const str_day new Date().setFullYear(year, month - 1, 1);const end_day new Date().setFullYear(year, month, 0);//该月第一周、最后一周const str_week new Date(str_day).getDay();const end_week new Date(end_day).getDay();const numRes this.getStrEndDay(str_week, end_week);// 该周开始、结束日期let str_time (week - 1) * 7 1;let end_time week * 7;if (numRes.str_num ! 7) {str_time numRes.str_num;end_time numRes.str_num;}let mm Number(month);mm mm 10 ? 0 mm : mm;str_time str_time 10 ? 0 str_time : str_time;end_time end_time 10 ? 0 end_time : end_time;let strDate year - mm - str_time;let endDate year - mm - end_time;if (Number(end_time) day_num) {let mm1 Number(mm) 1 10 ? 0 (Number(mm) 1) : Number(mm) 1;let last_num Number(end_time) - day_num;last_num last_num 10 ? 0 last_num : last_num;endDate year - mm1 - last_num;}return {strDate,endDate};}}
};
/script