如何获取给定日期前 14 天以避免节假日

nnn*_*nnn 5 c# sql-server-2008

在我的系统中,帐单的到期日必须是签发日期后的 14 天。
我有截止日期,我想知道签发日期。
我必须计算:

issued date = 14 days prior to the due date
Run Code Online (Sandbox Code Playgroud)

14天必须是工作日,不能是节假日。
假期存储在表“tblHolidayMaster”中,如下所示,

日期 说明
2012/05/13 母亲节
2012/06/02 星期六
2012/12/25 圣诞节

如何计算签发日期避开节假日?
感谢您的所有关注和回复。

Ket*_*hup 3

我将使用如下函数(我使用的函数)来计算日期

public static DateTime AddBusinessDays(DateTime date, int days)
 {
    if (days == 0) return date;

   if (date.DayOfWeek == DayOfWeek.Saturday)
   {
    date = date.AddDays(2);
    days -= 1;
  }
  else if (date.DayOfWeek == DayOfWeek.Sunday)
  {
    date = date.AddDays(1);
    days -= 1;
  } 



 date = date.AddDays(days / 5 * 7);
 int extraDays = days % 5;

 if ((int)date.DayOfWeek + extraDays > 5)
 {
    extraDays += 2;
 }

int extraDaysForHolidays =-1;
//Load holidays from DB into list
List<DateTime> dates = GetHolidays();

while(extraDaysForHolidays !=0)
{

 var days =  dates.Where(x => x >= date  && x <= date.AddDays(extraDays)).Count;
 extraDaysForHolidays =days;
 extraDays+=days;  
}


return date.AddDays(extraDays);
Run Code Online (Sandbox Code Playgroud)

}

还没有测试过假期的 ast 部分