日期:2014-05-16  浏览次数:20438 次

获取一个时间段内星期二的天数
如2012-01-01到2012-01-25区间内,有几个星期二,几个星期四

------解决方案--------------------
C# code

void Main()
{
    DateTime dt1= DateTime.Parse("2012-01-01");
    DateTime dt2= DateTime.Parse("2012-01-25");
    TimeSpan ts=dt2-dt1;
    int x=0;
    int y=0;
    for(int i=0;i<(int)ts.TotalDays;i++)
    {
      if(dt1.DayOfWeek==DayOfWeek.Tuesday) x++;
      if(dt1.DayOfWeek==DayOfWeek.Thursday) y++;
      
      dt1=dt1.AddDays(1);
    }
    Console.WriteLine("Tuesday:{0} \tThursday{1}",x,y);
    //Tuesday:4     Thursday3
}

------解决方案--------------------
JScript code


Date.prototype.increment=function(){
  return new Date(this.getTime()+3600*24*1000);
}

//第三个参数就是对应的星期几(0表表示星期日,1表示星期一。。。。)
function getNum(a,b,c){
 var a=new Date(Date.parse(a));
 var b= new Date(Date.parse(b));
 var num = 0; 
  while(a<=b){

    if(c==a.getDay()){
        num++;
    }
    a=a.increment();
}
return num;
}

//直接调用
alert(getNum("2012-01-01","2012-01-25",1));

------解决方案--------------------
探讨

JScript code


Date.prototype.increment=function(){
return new Date(this.getTime()+3600*24*1000);
}

//第三个参数就是对应的星期几(0表表示星期日,1表示星期一。。。。)
function getNum(a,b,c){
var a=new Date(Date.parse(a));
va……

------解决方案--------------------
JScript code
var sd1 = new Date(2012,0,3);//开始日期
var ed1 = new Date(2012,0,24);//结束日期,月份要减一
calwd = function(sd,ed,cw){//第三个参数:0-星期日,1-星期一,
    var daydiff = (ed.getTime()-sd.getTime())/86400000+1;
    var daystart = sd.getDay();
    return Math.ceil((daydiff - ((cw - daystart)>=0 ? cw - daystart : cw - daystart + 7))/7);
}

alert(calwd(sd1,ed1,2));