Maison > développement back-end > C++ > Comment calculer les jours ouvrables entre deux dates en C# ?

Comment calculer les jours ouvrables entre deux dates en C# ?

DDD
Libérer: 2025-01-17 18:26:12
original
497 Les gens l'ont consulté

How to Calculate Business Days Between Two Dates in C#?

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal