js获取 本周,本月,本季度,本年,上月,上周,上季度,去年

/** 
 * 针对Ext的工具类 
 */  
var MrYangUtil=function(){  
    /*** 
     * 获得当前时间 
     */  
    this.getCurrentDate=function(){  
        return new Date();  
    };  
    /*** 
     * 获得本周起止时间 
     */  
    this.getCurrentWeek=function(){  
        //起止日期数组  
        var startStop=new Array();  
        //获取当前时间  
        var currentDate=this.getCurrentDate();  
        //返回date是一周中的某一天  
        var week=currentDate.getDay();  
        //返回date是一个月中的某一天  
        var month=currentDate.getDate();  
      
        //一天的毫秒数  
        var millisecond=1000*60*60*24;  
        //减去的天数  
        var minusDay=week!=0?week-1:6;  
        //alert(minusDay);  
        //本周 周一  
        var monday=new Date(currentDate.getTime()-(minusDay*millisecond));  
        //本周 周日  
        var sunday=new Date(monday.getTime()+(6*millisecond));  
        //添加本周时间  
        startStop.push(monday);//本周起始时间  
        //添加本周最后一天时间  
        startStop.push(sunday);//本周终止时间  
        //返回  
        return startStop;  
    };  
      
    /*** 
     * 获得本月的起止时间 
     */  
    this.getCurrentMonth=function(){  
        //起止日期数组  
        var startStop=new Array();  
        //获取当前时间  
        var currentDate=this.getCurrentDate();  
        //获得当前月份0-11  
        var currentMonth=currentDate.getMonth();  
        //获得当前年份4位年  
        var currentYear=currentDate.getFullYear();  
        //求出本月第一天  
        var firstDay=new Date(currentYear,currentMonth,1);  
          
  
        //当为12月的时候年份需要加1  
        //月份需要更新为0 也就是下一年的第一个月  
        if(currentMonth==11){  
            currentYear++;  
            currentMonth=0;//就为  
        }else{  
            //否则只是月份增加,以便求的下一月的第一天  
            currentMonth++;  
        }  
     
          
        //一天的毫秒数  
        var millisecond=1000*60*60*24;  
        //下月的第一天  
        var nextMonthDayOne=new Date(currentYear,currentMonth,1);  
        //求出上月的最后一天  
        var lastDay=new Date(nextMonthDayOne.getTime()-millisecond);  
          
        //添加至数组中返回  
        startStop.push(firstDay);  
        startStop.push(lastDay);  
        //返回  
        return startStop;  
    };  
      
    /** 
     * 得到本季度开始的月份 
     * @param month 需要计算的月份 
     ***/  
    this.getQuarterSeasonStartMonth=function(month){  
        var quarterMonthStart=0;  
        var spring=0; //春  
        var summer=3; //夏  
        var fall=6;   //秋  
        var winter=9;//冬  
        //月份从0-11  
        if(month<3){  
            return spring;  
        }  
          
        if(month<6){  
            return summer;  
        }  
          
        if(month<9){  
            return fall;  
        }  
          
        return winter;  
    };  
      
    /** 
     * 获得该月的天数 
     * @param year年份 
     * @param month月份 
     * */  
    this.getMonthDays=function(year,month){  
        //本月第一天 1-31  
        var relativeDate=new Date(year,month,1);  
        //获得当前月份0-11  
        var relativeMonth=relativeDate.getMonth();  
        //获得当前年份4位年  
        var relativeYear=relativeDate.getFullYear();  
          
        //当为12月的时候年份需要加1  
        //月份需要更新为0 也就是下一年的第一个月  
        if(relativeMonth==11){  
            relativeYear++;  
            relativeMonth=0;  
        }else{  
            //否则只是月份增加,以便求的下一月的第一天  
            relativeMonth++;  
        }  
        //一天的毫秒数  
        var millisecond=1000*60*60*24;  
        //下月的第一天  
        var nextMonthDayOne=new Date(relativeYear,relativeMonth,1);  
        //返回得到上月的最后一天,也就是本月总天数  
        return new Date(nextMonthDayOne.getTime()-millisecond).getDate();  
    };  
      
    /** 
     * 获得本季度的起止日期 
     */  
    this.getCurrentSeason=function(){  
        //起止日期数组  
        var startStop=new Array();  
        //获取当前时间  
        var currentDate=this.getCurrentDate();  
        //获得当前月份0-11  
        var currentMonth=currentDate.getMonth();  
        //获得当前年份4位年  
        var currentYear=currentDate.getFullYear();  
        //获得本季度开始月份  
        var quarterSeasonStartMonth=this.getQuarterSeasonStartMonth(currentMonth);  
        //获得本季度结束月份  
        var quarterSeasonEndMonth=quarterSeasonStartMonth+2;  
          
        //获得本季度开始的日期  
        var quarterSeasonStartDate=new Date(currentYear,quarterSeasonStartMonth,1);  
        //获得本季度结束的日期  
        var quarterSeasonEndDate=new Date(currentYear,quarterSeasonEndMonth,this.getMonthDays(currentYear, quarterSeasonEndMonth));  
        //加入数组返回  
        startStop.push(quarterSeasonStartDate);  
        startStop.push(quarterSeasonEndDate);  
        //返回  
        return startStop;  
    };  
      
    /*** 
     * 得到本年的起止日期 
     *  
     */  
    this.getCurrentYear=function(){  
        //起止日期数组  
        var startStop=new Array();  
        //获取当前时间  
        var currentDate=this.getCurrentDate();  
        //获得当前年份4位年  
        var currentYear=currentDate.getFullYear();  
          
        //本年第一天  
        var currentYearFirstDate=new Date(currentYear,0,1);  
        //本年最后一天  
        var currentYearLastDate=new Date(currentYear,11,31);  
        //添加至数组  
        startStop.push(currentYearFirstDate);  
        startStop.push(currentYearLastDate);  
        //返回  
        return startStop;  
    };  
      
    /** 
     * 返回上一个月的第一天Date类型 
     * @param year 年 
     * @param month 月 
     **/  
    this.getPriorMonthFirstDay=function(year,month){  
        //年份为0代表,是本年的第一月,所以不能减  
        if(month==0){  
            month=11;//月份为上年的最后月份  
            year--;//年份减1  
            return new Date(year,month,1);  
        }  
        //否则,只减去月份  
        month--;  
        return new Date(year,month,1);;  
    };  
      
    /** 
     * 获得上一月的起止日期 
     * ***/  
    this.getPreviousMonth=function(){  
        //起止日期数组  
        var startStop=new Array();  
        //获取当前时间  
        var currentDate=this.getCurrentDate();  
        //获得当前月份0-11  
        var currentMonth=currentDate.getMonth();  
        //获得当前年份4位年  
        var currentYear=currentDate.getFullYear();  
        //获得上一个月的第一天  
        var priorMonthFirstDay=this.getPriorMonthFirstDay(currentYear,currentMonth);  
        //获得上一月的最后一天  
        var priorMonthLastDay=new Date(priorMonthFirstDay.getFullYear(),priorMonthFirstDay.getMonth(),this.getMonthDays(priorMonthFirstDay.getFullYear(), priorMonthFirstDay.getMonth()));  
        //添加至数组  
        startStop.push(priorMonthFirstDay);  
        startStop.push(priorMonthLastDay);  
        //返回  
        return startStop;  
    };  
      
      
    /** 
     * 获得上一周的起止日期 
     * **/  
    this.getPreviousWeek=function(){  
        //起止日期数组  
        var startStop=new Array();  
        //获取当前时间  
        var currentDate=this.getCurrentDate();  
        //返回date是一周中的某一天  
        var week=currentDate.getDay();  
        //返回date是一个月中的某一天  
        var month=currentDate.getDate();  
        //一天的毫秒数  
        var millisecond=1000*60*60*24;  
        //减去的天数  
        var minusDay=week!=0?week-1:6;  
        //获得当前周的第一天  
        var currentWeekDayOne=new Date(currentDate.getTime()-(millisecond*minusDay));  
        //上周最后一天即本周开始的前一天  
        var priorWeekLastDay=new Date(currentWeekDayOne.getTime()-millisecond);  
        //上周的第一天  
        var priorWeekFirstDay=new Date(priorWeekLastDay.getTime()-(millisecond*6));  
          
        //添加至数组  
        startStop.push(priorWeekFirstDay);  
        startStop.push(priorWeekLastDay);  
          
        return startStop;  
    };  
      
    /** 
     * 得到上季度的起始日期 
     * year 这个年应该是运算后得到的当前本季度的年份 
     * month 这个应该是运算后得到的当前季度的开始月份 
     * */  
    this.getPriorSeasonFirstDay=function(year,month){  
        var quarterMonthStart=0;  
        var spring=0; //春  
        var summer=3; //夏  
        var fall=6;   //秋  
        var winter=9;//冬  
        //月份从0-11  
        switch(month){//季度的其实月份  
        case spring:  
            //如果是第一季度则应该到去年的冬季  
              year--;  
              month=winter;  
            break;  
        case summer:  
            month=spring;  
            break;  
        case fall:  
            month=summer;  
            break;  
        case winter:  
            month=fall;  
            break;  
              
        };  
          
        return new Date(year,month,1);  
    };  
      
    /** 
     * 得到上季度的起止日期 
     * **/  
    this.getPreviousSeason=function(){  
        //起止日期数组  
        var startStop=new Array();  
        //获取当前时间  
        var currentDate=this.getCurrentDate();  
        //获得当前月份0-11  
        var currentMonth=currentDate.getMonth();  
        //获得当前年份4位年  
        var currentYear=currentDate.getFullYear();  
        //上季度的第一天  
        var priorSeasonFirstDay=this.getPriorSeasonFirstDay(currentYear, currentMonth);  
        //上季度的最后一天  
        var priorSeasonLastDay=new Date(priorSeasonFirstDay.getFullYear(),priorSeasonFirstDay.getMonth()+2,this.getMonthDays(priorSeasonFirstDay.getFullYear(), priorSeasonFirstDay.getMonth()+2));  
        //添加至数组  
        startStop.push(priorSeasonFirstDay);  
        startStop.push(priorSeasonLastDay);  
        return startStop;  
    };  
      
    /** 
     * 得到去年的起止日期 
     * **/  
    this.getPreviousYear=function(){  
        //起止日期数组  
        var startStop=new Array();  
        //获取当前时间  
        var currentDate=this.getCurrentDate();  
        //获得当前年份4位年  
        var currentYear=currentDate.getFullYear();  
            currentYear--;  
        var priorYearFirstDay=new Date(currentYear,0,1);  
        var priorYearLastDay=new Date(currentYear,11,1);  
        //添加至数组  
        startStop.push(priorYearFirstDay);  
        startStop.push(priorYearLastDay);  
        return startStop;  
    };  
      
      
      
      
      
};  

你可能感兴趣的:(js获取 本周,本月,本季度,本年,上月,上周,上季度,去年)