public virtual DateTime GetCalculatedBusinessDay(DateTime date, BusinessDayCalculation adjsutment) { if (adjsutment == BusinessDayCalculation.AnyDay) { return(date); } if (adjsutment == BusinessDayCalculation.PreviousBusinessDay) { return(GetPreviousBusinessDay(date)); } if (adjsutment == BusinessDayCalculation.NextBusinessDay) { return(GetNextBusinessDay(date)); } var previousBusinessDay = GetPreviousBusinessDay(date); var nextBusinessDay = GetPreviousBusinessDay(date); if (adjsutment == BusinessDayCalculation.ClosestBusinessDayOrNext) { if (date.Subtract(previousBusinessDay).Days > nextBusinessDay.Subtract(date).Days) { return(nextBusinessDay); } else if (date.Subtract(previousBusinessDay).Days < nextBusinessDay.Subtract(date).Days) { return(previousBusinessDay); } else { return(nextBusinessDay); } } //last option is NextBusinessDayThisMonthOrPrevious if (nextBusinessDay.Month == date.Month) { return(nextBusinessDay); } return(previousBusinessDay); }
public IActionResult Post(BusinessDayCalculation request) { request.BusinessDays = _businessDayCalculationService.CalculateNumberOfBusinessDaysBetweenTwoDates(request.StartDate, request.EndDate); return(Ok(request)); }