sql >> Databáze >  >> RDS >> Sqlserver

Jak se dostat 14 dní před daným datem a vyhnout se svátkům

Datum bych vypočítal pomocí funkce, jako je ta níže (kterou používám)

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);

}

Netestovali jsme sekci ast, která dělá svátky



  1. Oracle Query:Jak porovnat dva sloupce různých tabulek s hodnotami oddělenými čárkami

  2. Chyba serveru SQL 4104:Vícedílný identifikátor nelze svázat.

  3. lepší přístup než ukládání hesla mysql v prostém textu v konfiguračním souboru?

  4. ORACLE Omezení povolit hodnotu Null, IF