首页 > 代码库 > javaScript Code 用javascript确定每月第二个星期五

javaScript Code 用javascript确定每月第二个星期五

废话少说只就上Code:

 
 
说明:getDay()方法获取星期(这里的星期是从0到6)。参见:http://www.w3school.com.cn/js/js_obj_date.asp 中的getDay().
代码有不足之处希望得到指正。
var SecondFriday = {   
    getSecondFriday: function () {
        var flag = 0;
        //(1)  获取当月月初时间,时间格式为:Sun Jun 01 2014 00:00:00 GMT+0800 (中国标准时间) 
        var thisDate = new Date(new Date().getFullYear(), new Date().getMonth());
            for (var i = 0; i < 15; i++) { //(2) 因为是每个月的第二个星期五,所以循环15次以内就可以
            wd = thisDate.getDay();//(3)判定当月月初是星期几
            if(wd===0){//(4)特殊处理星期天。 因为星期天为‘0’。
                console.log(‘here‘);
                 return thisDate.getFullYear() + "-" + (thisDate.getMonth() + 1) + "-" +"13"
            }
          
            if ((i + wd) % 5 == 0) { 
                flag = flag + 1;//(5)标示符,确定是第二个星期五
                if (flag == 2) {
                    return thisDate.getFullYear() + "-" + (thisDate.getMonth() + 1) + "-" + (i + wd)
                }
            }
        }
    }
};

//Chrom 测试
console.log(SecondFriday.getSecondFriday());


 @背塔者 ,提供的简洁代码:

版本一:

function getSecondFriday() {
 var now = new Date();
 var first = new Date(now.getFullYear(), now.getMonth(), 1);
 now.setDate((5 - first.getDay()) + 7 + 1); // 星期五-第一天的的星期几+1天+7天
 return now;
}

版本二:

// 星期五-第一天的的星期几+1天+7天,星期六特殊处理了下
function getSecondFriday() {
 var now = new Date();
 var first = new Date(now.getFullYear(), now.getMonth(), 1);
 now.setDate((5 - (first.getDay() > 5? -1: first.getDay())) + 7 + 1); 
 return now;
}

 

 holine 总结:

 
function secondFriday(date){
    date = new Date(date);
    date.setDate(1);
    date.setDate((12 - date.getDay()) % 7 + 8);
    return date;
}