C#에서 두 날짜 사이의 근무일 계산
C#에서 두 날짜 사이의 근무일 수를 계산하는 것은 일정 관리, 프로젝트 관리 및 기타 애플리케이션에 매우 유용한 도구입니다. 주말과 공휴일을 고려하여 이를 수행하는 방법에는 여러 가지가 있습니다.
사용자 정의 방법 사용:
한 가지 방법은 근무일 수를 수동으로 계산하는 사용자 정의 방법을 만드는 것입니다. 예는 다음과 같습니다.
<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#에서 두 날짜 사이의 영업일을 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!