日付パラメータに営業日(週末を除く)を追加することに関連する投稿を多数見てきましたが、そのうちのいくつかを使用してみました。ただし、一部のシナリオでは、選択したすべてのソリューションが失敗しています。以下は私が現在使用しているコードです:
private DateTime AddWorkingDays(DateTime dateValue, int noOfDays)
{
// determine if we are adding or subtracting the days
int nDirection = noOfDays < 0 ? -1 : 1;
// move ahead the day of week
int nWeekday = noOfDays % 5;
while (nWeekday != 0)
{
dateValue = dateValue.AddDays(nDirection);
if (dateValue.DayOfWeek != DayOfWeek.Saturday
&& dateValue.DayOfWeek != DayOfWeek.Sunday)
{
nWeekday -= nDirection;
}
}
// move ahead the number of weeks
int nDayweek = (noOfDays / 5) * 7;
dateValue = dateValue.AddDays(nDayweek);
return dateValue;
}
失敗するシナリオの例:日付:2012年11月24日(土曜日)、日数:5(または10)結果:2012年11月30日であった場合の2012年12月1日(または2012年12月8日)11月25日失敗、2012年も..そして私が推測する同様のシナリオでは、入力日は週末になります。
誰かがそのようなシナリオを修正するのを手伝ってもらえますか?または、より良いソリューションを提供しますか?
ありがとうございました