Calculer les jours ouvrés entre deux dates en C#
En C#, calculer le nombre de jours ouvrés entre deux dates est un outil très utile pour la planification, la gestion de projet et d'autres applications. Il existe plusieurs façons d'y parvenir, en tenant compte des week-ends et des éventuels jours fériés.
Utiliser la méthode personnalisée :
Une solution consiste à créer une méthode personnalisée qui calcule manuellement le nombre de jours ouvrables. Voici un exemple :
<code class="language-csharp">public static int BusinessDaysUntil(DateTime firstDay, DateTime lastDay, params DateTime[] bankHolidays) { // 处理错误的结束日期 if (firstDay > lastDay) throw new ArgumentException("结束日期错误: " + lastDay); TimeSpan span = lastDay - firstDay; int businessDays = span.Days + 1; int fullWeekCount = businessDays / 7; // 计算周末天数 if (businessDays > fullWeekCount * 7) { int firstDayOfWeek = (int)firstDay.DayOfWeek; int lastDayOfWeek = (int)lastDay.DayOfWeek; if (lastDayOfWeek == 7) //周日 businessDays -= 2; else if (lastDayOfWeek >= 6) //周六或周日 businessDays -= 1; if (firstDayOfWeek == 7) //周日 businessDays -= 1; } // 从完整周中减去周末天数 businessDays -= fullWeekCount * 2; // 减去银行假日 foreach (DateTime bankHoliday in bankHolidays) { DateTime bh = bankHoliday.Date; if (firstDay <= bh && bh <= lastDay) businessDays--; } return businessDays; }</code>
Jours fériés et saisies personnalisées :
De plus, la méthode peut être étendue pour considérer une liste de jours fériés, garantissant ainsi l'exactitude même si ces jours fériés surviennent en milieu de semaine. En fournissant une liste de dates personnalisée, vous pouvez gérer des scénarios spécifiques.
Autres méthodes :
C# propose d'autres moyens de calculer les jours ouvrables, comme l'utilisation de bibliothèques tierces ou la classe System.Globalization.Calendar
intégrée. Cependant, la méthode personnalisée décrite ci-dessus fournit une implémentation claire et simple qui répond aux exigences énoncées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!