程序按你说的已经完成了,但是你们公司的规矩好怪,那一个月要是有5个星期六呢,肯定存在连着两个周六都上班的情况。
<script language=javascript>
Date.prototype.haha=function()
{
var year=this.getYear();
var month=this.getMonth();
var date=this.getDate();
var hour=this.getHours();
if(this.getDay()==6)
{
var DateFirst=new Date(year,month,1)
var FirstDay=DateFirst.getDay();
if(Math.ceil(date/7)%2==1)
{
if((hour>7)&&(hour<17))
{
return true;
}
else
{
return false
}
}
else
{
return false;
}
}
if(this.getDay()==7)
{
return false
}
if((hour>7)&&(hour<17))
{
return true;
}
else
{
return false
}
}

var a=new Date();
alert(a.haha());
</script>

解决方案 »

  1.   

    Math.ceil(date/7)%2==1应该是Math.ceil(date/7)%2==0吧!!
      

  2.   

    这个方法好象有些问题,
    要减去一个月开始的时候的半个周
    Math.ceil((date-parseInt(FirstDay))/7)%2==1
    具体可能还要调下,星期日是0,这块有些问题
      

  3.   

    修改了下
    <script language=javascript>
    Date.prototype.haha=function()
    {
    var year=this.getYear();
    var month=this.getMonth();
    var date=this.getDate();
    var hour=this.getHours();
    if(this.getDay()==6)
    {
    var DateFirst=new Date(year,month,1)
    var FirstDay=DateFirst.getDay();

    var b=new Date(year,month,1);
    var flag=0;
    for(i=this;i>b;)
    {
    if(i.getDay()==6)
    {
    flag++
    }
    i=new Date(i-86400000)
    }
    if(flag%2==1)
    {
    if((hour>7)&&(hour<17))
    {
    return true;
    }
    else
    {
    return false
    }
    }
    else
    {
    return false;
    }
    }
    if(this.getDay()==7)
    {
    return false
    }
    if((hour>7)&&(hour<17))
    {
    return true;
    }
    else
    {
    return false
    }
    }

    var a=new Date(2005,11,17,12,5,6);
    alert(a.haha());
    </script>