code: public static int getWorkingDays (@Nonnull final LocalDate aStartDate,
                                      @Nonnull final LocalDate aEndDate,
                                      @Nonnull final IHolidayManager aHolidayMgr)
    {
      ValueEnforcer.notNull (aStartDate, "StartDate");
      ValueEnforcer.notNull (aEndDate, "EndDate");
      ValueEnforcer.notNull (aHolidayMgr, "HolidayMgr");
  
      final boolean bFlip = aStartDate.isAfter (aEndDate);
      LocalDate aCurDate = bFlip ? aEndDate : aStartDate;
      final LocalDate aRealEndDate = bFlip ? aStartDate : aEndDate;
  
      int ret = 0;
      while (!aRealEndDate.isBefore (aCurDate))
      {
        if (isWorkDay (aCurDate, aHolidayMgr))
          ret++;
        aCurDate = aCurDate.plusDays (1);
      }
      return bFlip ? -1 * ret : ret;
    }
docs: Get the number of working days between start date (incl.) and end date
  (incl.). An optional holiday calculator can be used as well.
  
  @param aStartDate
  The start date. May not be <code>null</code>.
  @param aEndDate
  The end date. May not be <code>null</code>.
  @param aHolidayMgr
  The holiday calculator to use. May not be <code>null</code>.
  @return The number of working days. If start date is after end date, the
  value will be negative! If start date equals end date the return
  will be 1 if it is a working day.