public async Task <long> CalcBusinessDaysAsync(DateTime startDate, DateTime endDate) { var holidays = await _holidayRepository.ListAsync(); // var workingDays = DayUtility.CalcWorkingDaysBetween(startDate, endDate); var workingDays = DayUtility.CalcWorkingDaysBetweenLinear(startDate, endDate); for (var year = startDate.Year; year <= endDate.Year; year++) { workingDays = holidays.Aggregate(workingDays, (current, holiday) => current - DayUtility.HolidayOverlapsWorkingDay(holiday, startDate, endDate, year)); } return(workingDays); }
public void CalcWorkingDaysBetweenLinearTests(DateTime startDate, DateTime endDate, long workingDays) { var result = DayUtility.CalcWorkingDaysBetweenLinear(startDate, endDate); Assert.AreEqual(workingDays, result); }