javascript 根据时间判断周数?该怎么解决

javascript 根据时间判断周数?开始的月是2007年12月3日结束的月是2008年6月30日输入一个月份的参数返回结

javascript 根据时间判断周数?
开始的月是2007年12月3日
结束的月是2008年6月30日
输入一个月份的参数
返回结果是当前月所在总的周的列表,总周数为结束日期减开始日期
例如:
function get(12) //12为月
{
  return 1 2 3 4 5 //所在周数为1-5
}

[解决办法]

HTML code
<script>function TimeSpan(month,start,end){    this.month=month;    this.start=start;    this.end=end;    this.toString=function(){        return this.month+"月,所在周数为:"+this.start+"-"+this.end;    }}function get(month){    var date,month_end;    if(month==get.startDay.getMonth()+1){        date=new Date(get.startDay);    }    if(month<get.startDay.getMonth()+1){        date=new Date(get.startDay);        date.setMonth(get.startDay.getMonth()+month);        date.setDate(1);    }else{        date=new Date(get.startDay);        date.setMonth(month-1);        date.setDate(1);    }    month_end=new Date(date);    month_end.setMonth(month_end.getMonth()+1);    month_end.setDate(1);    var a=date-get.startDay;    var b=month_end-get.startDay;    var spanA=a/1000/60/60/24/7;    var spanB=b/1000/60/60/24/7;    var ts=new TimeSpan();    ts.month=date.getMonth()+1;    ts.start=parseInt(spanA)+(spanA%1>0?1:0);    ts.end=parseInt(spanB)+(spanB%1>0?1:0);    if(month==get.startDay.getMonth()+1)ts.start++;        return ts;}get.startDay=new Date(2007,11,3);//11其实就是指12月get.endDay=new Date(2008,5,30);//5其实是指6月/* 测试输出 */document.write(get(12),"<br />");for(var i=1;i<=6;i++){    document.write(get(i),"<br />");}</script>
[解决办法]
有bug,多加几行
HTML code
<script>function TimeSpan(month,start,end){    this.month=month;    this.start=start;    this.end=end;    this.toString=function(){        return this.month+"月,所在周数为:"+this.start+"-"+this.end;    }}function get(month){    var date,month_end;    if(month==get.startDay.getMonth()+1){        date=new Date(get.startDay);    }    if(month<get.startDay.getMonth()+1){        date=new Date(get.startDay);        date.setMonth(get.startDay.getMonth()+month);        date.setDate(1);    }else{        date=new Date(get.startDay);        date.setMonth(month-1);        date.setDate(1);    }    month_end=new Date(date);    month_end.setMonth(month_end.getMonth()+1);    month_end.setDate(1);    /* 多了这几行 必须的*/    if(date.getMonth()==get.endDay.getMonth()){        month_end=new Date(get.endDay);        month_end.setDate(month_end.getDate()+1);    }    var a=date-get.startDay;    var b=month_end-get.startDay;    var spanA=a/1000/60/60/24/7;    var spanB=b/1000/60/60/24/7;    var ts=new TimeSpan();    ts.month=date.getMonth()+1;    ts.start=parseInt(spanA)+(spanA%1>0?1:0);    ts.end=parseInt(spanB)+(spanB%1>0?1:0);    if(month==get.startDay.getMonth()+1)ts.start++;        return ts;}get.startDay=new Date(2007,11,3);//11其实就是指12月get.endDay=new Date(2008,5,30);//5其实是指6月/* 测试输出 */document.write(get(12),"<br />");for(var i=1;i<=6;i++){    document.write(get(i),"<br />");}</script>
[解决办法]
lz多修改一下开始个结束的2个期限。。多试下有没有错~~~
[解决办法]
参考及效果演示http://www.515161.cn/515161/admins/js/date.html