前次网友给写了个,
但是不是很正确,会就算出4月33号来。。<input type="text" id="textyear" value="2009">年<input type="button" value="计算周数" onclick="getWeekNumber()"><span id="span1"></span>
<br/>
<input type="text" id="textweek" value="18">周<input type="button" value="计算日期" onclick="getDates()"><span id="span2"></span><script>
function getWeekNumber(){
    var theYear = document.getElementById("textyear").value;
    var firstDay = new Date(theYear + "/01/01");
    var counter = 0;
    while(firstDay.getFullYear() == theYear){
        firstDay.setDate(firstDay.getDate() + 7);
        counter++;
    }
    document.getElementById("span1").innerHTML = theYear + "年有" + counter + "周";
}function getDates(){
    var theYear = document.getElementById("textyear").value;
    var theWeek = document.getElementById("textweek").value;
    var theDay = new Date(theYear + "/01/01");
    theDay.setDate(theDay.getDate() + 7 * theWeek);
    while(theDay.getDay() != 1){
        theDay.setDate(theDay.getDate() - 1);
    }
    document.getElementById("span2").innerHTML = theYear + "年,第" + theWeek + "周:" 
        + theDay.getFullYear() + "-" + (theDay.getMonth() + 1) + "-" + theDay.getDate()
        + " ~ "
        + theDay.getFullYear() + "-" + (theDay.getMonth() + 1) + "-" + (theDay.getDate() + 6);
}
</script>
上面是网友给出的代码,周内的日期计算的不正确,那为大侠给该下,或发个正确的。

解决方案 »

  1.   

    <input type="text" id="textyear" value="2009">年 <input type="button" value="计算周数" onclick="getWeekNumber()"> <span id="span1"> </span>
    <br/>
    <input type="text" id="textweek" value="18">周 <input type="button" value="计算日期" onclick="getDates()"> <span id="span2"> </span><script>
    function getWeekNumber(){
        var theYear = document.getElementById("textyear").value;
        var firstDay = new Date(theYear + "/01/01");
        var counter = 0;
        while(firstDay.getFullYear() == theYear){
            firstDay.setDate(firstDay.getDate() + 7);
            counter++;
        }
        document.getElementById("span1").innerHTML = theYear + "年有" + counter + "周";
    }function getDates(){
        var theYear = document.getElementById("textyear").value;
        var theWeek = document.getElementById("textweek").value;
        var theDay = new Date(theYear + "/01/01");
        theDay.setDate(theDay.getDate() + 7 * theWeek);
        while(theDay.getDay() != 1){
            theDay.setDate(theDay.getDate() - 1);
        }
        var endDay = new Date(theDay.getTime() + 7 * 24 * 60 * 60 * 1000);
        document.getElementById("span2").innerHTML = theYear + "年,第" + theWeek + "周:"
            + theDay.getFullYear() + "-" + (theDay.getMonth() + 1) + "-" + theDay.getDate()
            + " ~ "
            + endDay.getFullYear() + "-" + (endDay.getMonth() + 1) + "-" + endDay.getDate();
    }
    </script>