两个日期天数差(去掉周六日)??在sqlserver里。

解决方案 »

  1.   

    实现比较麻烦...给点思路;
    判断2个日期天数差
    if(日期差<7)
        {
         if(datepart(weekday,开始日期)=1 or datepart(weekday,开始日期)=7)
             {
              return 日期差-1;
              if(datepart(weekday,结束日期)=1 or datepart(weekday,结束日期)=7)
                   {
                    return 日期差-2;
                 } 
            }
          else
            {return 日期差}
        }
    else //日期差>=7的情况
    {
    利用日期差%7的结果,决定周数,再根据上面的思路解决;
    }       
      

  2.   

    datediff(day,起始日期,结束日期)返回日期差。。
    去除星期六还没想好
      

  3.   

    1、Mod(天数差除7)*5 
    2、剩余的循环一下好了算出是几个有效天
    两者相加就是了
      

  4.   

    关键在于去掉周6与周日.
    思路:
    (1)返回两日期差
    (2)获得两日期中的一个的是星期几,据此算出两日期之间应减多少个周6与周日-----------------------------------------------------  
    欢迎光临LGX软件园(http://lgxyslldw.512j.com)      ◎LgxGrid表格(报表)控件。无论你是初学者还是资深程序员,她都会给你带来意想不到的惊喜!      ◎LGX网店管理系统。她,让你可以轻轻松松地组建你的网店,让互联网给你带来无限的商机。  (以上两款软件诚招软件销售代理商。有意者邮[email protected]商谈)
      

  5.   

    //获得当前日期为一年中的第几周
    public static int GetWeekOfYear(DateTime dt)   
    {   
    CultureInfo ci   = CultureInfo.CurrentCulture;   
    System.Globalization.Calendar cal = ci.Calendar;   
    CalendarWeekRule cwr = ci.DateTimeFormat.CalendarWeekRule;   
    DayOfWeek dow = ci.DateTimeFormat.FirstDayOfWeek;   
    return  cal.GetWeekOfYear(dt,cwr,dow);  
    }
    //获得连个日期间的周末天数
    public static int WeekDays(string startDate,string endDate)
    {
    DateTime stDateTime = Convert.ToDateTime(startDate);
    DateTime enDateTime = Convert.ToDateTime(endDate); int stWeekOfYear = GetWeekOfYear(stDateTime);
    int enWeekOfYear = GetWeekOfYear(enDateTime); int stDayOfWeek = (int)stDateTime.DayOfWeek;
    int enDayOfWeek = (int)enDateTime.DayOfWeek; int weekendDays = (enWeekOfYear - stWeekOfYear) * 2; if(stDayOfWeek == 0) weekendDays += 1;
    if(enDayOfWeek == 6) weekendDays += 1; return weekendDays;
    }
    //获得两个日期间的时间间隔
    public static int IntervalDays(string startDate,string endDate)
    {
    DateTime stDateTime = Convert.ToDateTime(startDate);
    DateTime enDateTime = Convert.ToDateTime(endDate); int stDayOfYear = stDateTime.DayOfYear;
    int enDayOfYear = enDateTime.DayOfYear; int intervalDays = enDayOfYear - stDayOfYear + 1; return intervalDays;
    }之前有用到,查了很多资料后整理出来的,希望有用...
      

  6.   

    一点思路:
            remainder = datediff(day,起始日期,结束日期)mod 7
           weeknum = datediff(day,起始日期,结束日期)/7 (取整)
           start = datepart(weekday,开始日期)
           end = datepart(weekday,开始日期) + remainder - 1
           sumdays = weeknum*7 + remainder 
           如果start 和 end数字之间包含1,7,8任何一个数字则sumdays的值减1,
            
            最后结果为sumdays