VUE 根据年,月获取每一个月中的星期天的时间段(每一周的开始日期到结束日期)

         最近因公司业务需求需要实现一个按照每周的日期进行一些业务处理,需要获取每个月有多少周,和每一周的开始日期到结束日期,经过一番思索,终于实现了,现在整理一下,方法如下:

getWeeksWithYearAndMonth(years,month){
    var  weeks = [];//现将星期数组重制一次
    var month2 = parseInt(month)-1;
    var myDate = new Date(years,month2,1);//获取每个月的第一天是星期几
    var firstDay = myDate.getDay();
    alert(myDate.getDay());
    var myDate2 = new Date(years,month2,0);
    var days = myDate2.getDate();//获取每个月有多少天
    alert(days);
    var firstMonday = '';
    var lastDay = '';
    if (firstDay-1==0){
        firstMonday = firstDay;//计算当月第一个星期一是几号
        lastDay = days;//计算当月减去第一个不完整的星期天,剩余的天数
    } else {
        firstMonday = 7-firstDay+2;//计算当月第一个星期一是几号
       lastDay = days-(7-firstDay+1);//计算当月减去第一个不完整的星期天,剩余的天数
    }

    var weeksCount = Math.floor(lastDay/7);//计算当月有几个完整的星期天
    alert(weeksCount);
    var weekth = '';
    for (var i=0;i<weeksCount;i++){
        weekth = i+1
        var week = new Object();
        week.label = month+'/'+(firstMonday+7*i)+'----'+month+'/'+((firstMonday+7*i)+7-1)+'(第'+weekth+'周)';
        week.value = (i+1).toString();
        weeks.push(week);
    }
    var shengyuDays = lastDay%7;//计算当月最后一个不完整的星期天有几天
    if (shengyuDays>0){//如果一个月的最后一个不完整的星期天天数大于零,则顺延到下一个月
        var week = new Object();
        var lastMoth = '';
        if (parseInt(month)==12){//如果当前月份为12月,则下一个月为1月
            lastMoth = '01';//下一年的1月
        } else {
            lastMoth = parseInt(month)+1;//下一个月
        }
        var lastWeekCount = 7-shengyuDays;
        week.label = month+'/'+(firstMonday+7*weeksCount)+'----'+'0'+lastMoth.toString()+'/'+lastWeekCount+'(第'+(weeksCount+1)+'周)';
        week.value = (weeksCount+1).toString();
        weeks.push(week);
    }
    return weeks;
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值