C# で 2 つの日付の間の営業日を計算します
C# では、2 つの日付の間の営業日数を計算することは、スケジュール、プロジェクト管理、その他のアプリケーションに非常に便利なツールです。これを実現するには、週末や銀行休業日を考慮して、さまざまな方法があります。
カスタムメソッドを使用します:
1 つの方法は、稼働日数を手動で計算するカスタム メソッドを作成することです。以下に例を示します:
<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>
祝日とカスタム入力:
さらに、この方法は銀行休業日のリストを考慮するように拡張でき、これらの休日が週の半ばに発生する場合でも精度を保証できます。カスタム日付リストを提供することで、特定のシナリオに対応できます。
その他のメソッド:
C# には、サードパーティのライブラリや組み込みの System.Globalization.Calendar
クラスを使用するなど、稼働日を計算する他の方法が用意されています。ただし、上記のカスタム メソッドは、指定された要件を満たす明確で簡単な実装を提供します。
以上がC# で 2 つの日付の間の営業日を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。