estLabourMonth() {const months = []const monthCol = []const start = new Date(this.form.project_start_date); // 开始时间const end = new Date(this.form.project_end_date); // 结束时间const end1 = new Date(end.getFullYear(),end.getMonth()+1,1) // 结束时间日期+1const currentDate = start;while (currentDate <= end1) {const month = currentDate.getMonth();let str = currentDate.getFullYear() + "-" + (month + 1) + "";const s = currentDate.getFullYear() + "-0";if (str == s) {str = currentDate.getFullYear() + "-12";}months.push(str);monthCol.push(str)currentDate.setMonth(month + 1);}this.form.monthCol = monthColreturn months; }

取出月份

<el-table-column:key="index"type="cell":index="index"v-for="(m, index) in estLabourMonth()"  // m 即为月份:label="m+'月'" width="120"align="center":prop="m">

二、计算起始时间与结束时间之间有哪些周(注意!!:当一周分配在两个月中间的时候,我是周四之前的日期算在上月,之后的算在下月)

estLabourWeek() {const weeks = []const weekCol = []const start = new Date(this.form.project_start_date); //起始日期const end = new Date(this.form.project_end_date); //结束日期let beginDate = new Date(start.getFullYear(), 0, 1); //起始日期年份的第一天let endnDate = new Date(end.getFullYear(), 0, 1); //结束日期年份的第一天let bd = beginDate.getDay() >= 4 ? (beginDate.getDay() - 7) : beginDate.getDay()let ed = endnDate.getDay() >= 4 ? (endnDate.getDay() - 7) : endnDate.getDay()let beginWeek = Math.ceil((parseInt((start - beginDate) / (24 * 60 * 60 * 1000)) + 1 + bd) / 7); //起始日期在当年的周数let endWeek = Math.ceil((parseInt((end - endnDate) / (24 * 60 * 60 * 1000)) + 1 + ed) / 7); //结束日期在当年的周数let startWeek = beginWeeklet startYear = start.getFullYear()if(start.getFullYear() == end.getFullYear()) { if(startWeek == 0) {let dateb11 = new Date(startYear-1+'-01-01 00:00:00')let date11 = new Date(startYear+'-01-01 00:00:00')let date1231 = new Date(startYear-1+'-01-01 00:00:00')let beforeWeek = Math.ceil((parseInt((date11 - date1231) / (24 * 60 * 60 * 1000)) + 1 + (dateb11.getDay() >= 4 ? (dateb11.getDay() - 7) : dateb11.getDay())) / 7); //起始年份前一年最后一天在当年的周数weeks.push({weeks: startYear-1 + "-" + beforeWeek,show: this.weekToDate(startYear-1,beforeWeek,5)});weekCol.push(startYear-1 + "-" + beforeWeek)startWeek++;}while (startWeek <= endWeek) {let daten11 = new Date(end.getFullYear()+1+'-01-01 00:00:00')let nextWeek = Math.ceil((parseInt((new Date(end.getFullYear()+1, 0, 1) - endnDate) / (24 * 60 * 60 * 1000)) + 1 + ed) / 7) //结束年份最后一天在当前年份的周数let str,showif(startWeek == nextWeek && daten11.getDay() < 4) {str = start.getFullYear()+1 + "-1" show = this.weekToDate(start.getFullYear()+1,1,5)} else {str = start.getFullYear() + "-" + startWeekshow = this.weekToDate(start.getFullYear(),startWeek,5)}weeks.push({weeks: str,show: show});weekCol.push(str)startWeek++;}} else {while (startYear <= end.getFullYear()) {let dayMS=24*60*60*1000let betDay = new Date(startYear+1+'-01-01 00:00:00').getTime() - new Date(startYear+'-01-01 00:00:00').getTime()let newD1 = new Date(startYear,0,1)let newD2 = new Date(startYear,11,31)let betWeek = betDay / dayMS  - (newD2.getDay()+1) - (7-newD1.getDay())let day = 0if(newD1.getDay() < 4 && newD1.getDay() > 0) {day += 1}if(newD2.getDay() >= 4 || newD2.getDay() == 0) {day += 1}day += (betWeek / 7)for(let i = 1; i<=day; i++) {if((startYear == start.getFullYear() && i >= startWeek) || (startYear > start.getFullYear() && startYear < end.getFullYear()) || (startYear == end.getFullYear() && i <= endWeek)) {let str = startYear + "-" + ilet show = this.weekToDate(startYear,i,5)weeks.push({weeks: str,show: show});weekCol.push(str)}}startYear++}}this.form.weekCol = weekColreturn weeks},

计算起始时间与结束时间之间有哪些月份和周数相关推荐

  1. python根据起始时间和结束时间计算时长

    可以使用python的内置模块datetime来计算时长.首先将起始时间和结束时间都转换为datetime对象,然后使用它们之间的差值即可得到时长. 例如: from datetime import ...

  2. R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间、将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间

    R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间.将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间(duration of an act ...

  3. R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间、将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间、适应时间段跨越多天的情况

    R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间.将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间.适应时间段跨越多天的情况(例如,当天 ...

  4. vue elementUI 时间控件优化 选择起始时间不能在结束时间之后,结束时间不能在起始时间之前

    时间控件优化 elementUI 选择起始时间不能在结束时间之后,结束时间不能在起始时间之前 <el-form-item label="起始时间:" class=" ...

  5. 根据起始时间和结束时间得到期间所有的日期集合

    /** * 根据起始时间和结束时间得到期间所有的日期集合 * * @param startTime 起始时间 * @param endTime 结束时间 * @return */private Lis ...

  6. 用moment获取一年内指定周的起始时间和结束时间、用户所选时间和前端传参时间不一致问题

    问题1: 原代码: //所选周selectedWeek:{handler(){let selectedWeek = parseInt(this.selectedWeek.substring(1))// ...

  7. Java获取当日的起始时间和结束时间

    //获取0点 public static Date getStartTime() {Calendar todayStart = Calendar.getInstance();todayStart.se ...

  8. mybatis date类型比较,起始时间或结束时间。

    如果数据库是时间类型而且你传的值也是时间类型,可以直接比较. 2023-2-17 更新 可以起始时间和结束时间一起判断 <if test="startTime != null and ...

  9. ORACLE取周、月、季、年的開始时间和结束时间

     1           取周的開始时间和结束时间 取周的開始时间.以星期一为開始. SQL>SELECT TRUNC(TO_DATE('2013-11-25 10:31:11','YYYY ...

最新文章

  1. [C++对象模型][6]sizeof与对象内存布局
  2. 基于深度学习的视频预测研究综述
  3. ppp在linux下的编译和安装
  4. PHP版本选择讲解:VC6与VC9,Thread Safe与None-Thread Safe等的选择
  5. React 编程思想 正反向数据流(单向数据流) 为了好理解我才叫正反向
  6. ServerVersion 引发了“System.InvalidOperationException”类型的异常
  7. 【手机开发岗位职责|手机开发是做什么的】-看准网
  8. 【转】flash air中读取本地文件的三种方法
  9. Web项目上线超详细流程
  10. 破解WEP密钥过程全解(上)
  11. V4L2 驱动层分析
  12. Turing Tape (推公式 模拟)
  13. 服务器存储的作用和用途,存储服务器有四大作用你都清楚吗?
  14. robot_localization中EKF源码介绍
  15. 如何安装使用免费的 TeamViewer ?
  16. 乖离率背离公式_乖离率多少才合理 BIAS指标计算公式-BIAS-技术指标-股票入门基础知识学习网...
  17. APP Manifest -Android
  18. 安装sentence-transformers
  19. 计算机无法使用网络连接到服务器,电脑无法连接网络并诊断提示DNS服务器未响应的解决方法...
  20. Unity 3D建筑内部第一人称漫游,房间切换漫游

热门文章

  1. js动态生成html表格
  2. 什么是位移电流?位移电流密度计算公式详解
  3. 同一个网址电脑手机访问显示不同内容思路
  4. 机器学习的几种分类损失函数
  5. MSRA提出学习实例和分布式视觉表示的极端掩蔽模型ExtreMA
  6. 词云生成库WordCloud详解(一):概述、ImageColorGenerator类
  7. vue项目用antv/g6做网络拓扑图
  8. el-table行合并,单列行合并或者指定列合并行
  9. VR虚拟现实AR增强现实编程(1):VR和AR简介
  10. 什么是操作系统(OS)?都有哪些常见的分类?