Comment obtenir de la prochaine journée de travail, à l'exclusion des week-ends et les jours fériés

J'ai une exigence où j'ai besoin de travailler sur un champ de date, de sorte que l'obligation est quelque chose comme cela

Je vais appeler le champ comme minimum possible de la date de

  1. Ajouter +1 à la date
  2. Si le minimum possible de la date tombe pendant un week-end(Samedi ou le Soleil) après l'ajout de 1 jour, Affichage de la prochaine journée de travail, je.e du lundi
  3. Si le minimum possible de la date tombe un jour Férié, l'affichage de la prochaine journée de travail. (Vacances 1.1 , 1.5 , 3.10 , 25.12 , 26.12)
  4. Si le minimum possible de la date tombe pendant un week-end(Samedi ou le Soleil) après l'ajout de 1 jour, et le jour d'après est un jour férié alors montrer la prochaine journée de travail. Par exemple: Après +1 jour si min jour est le samedi, nous aurons pour afficher le lundi. Mais si le lundi est un jour de congé, alors, nous pouvons afficher le mardi.

J'ai essayé une solution pour le problème ci-dessus par le fait d'avoir plusieurs si et dans d'autre cas, mais je me demandais si il existe un médicament générique et gracieuse façon de faire?

J'ai essayé

var Holidays = new List<DateTime>();
Holidays.Add(new DateTime(DateTime.Now.Year,1,1));
Holidays.Add(new DateTime(DateTime.Now.Year,1,5));
Holidays.Add(new DateTime(DateTime.Now.Year,3,10));
Holidays.Add(new DateTime(DateTime.Now.Year,12,25));

if(date.DayOfWeek === DayOfWeek.Saturday || date.DayOfWeek === DayOfWeek.Sunday)

{

     //Logic to add +1 and again some logic to check for weekends and weekdays
}


else if(holidays.Contain(date))
{

   //Logic to add +1 and again some logic to check for weekends and weekdays
}

OriginalL'auteur CSharped | 2015-10-27