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;

}


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容