docs: @Override
  	public double getDaycountFraction(LocalDate startDate, LocalDate endDate) {
  		if(startDate.isAfter(endDate)) {
  			return -getDaycountFraction(endDate,startDate);
  		}
  
  		int periodIndexEndDate = Collections.binarySearch(periods, new Period(endDate, endDate, endDate, endDate));
  		int periodIndexStartDate = Collections.binarySearch(periods, new Period(startDate, startDate, startDate, startDate));
  
  		if(periodIndexEndDate < 0) {
  			periodIndexEndDate		= -periodIndexEndDate-1;
  		}
  		if(periodIndexStartDate < 0) {
  			periodIndexStartDate	= -periodIndexStartDate-1;
  		} else {
  			periodIndexStartDate	= periodIndexStartDate+1;
  		}
  
  		Period startDatePeriod = periods.get(periodIndexStartDate);
  		Period endDatePeriod = periods.get(periodIndexEndDate);
  
  		double periodFraction =
  				getDaycount(startDate, startDatePeriod.getPeriodEnd()) / getDaycount(startDatePeriod.getPeriodStart(), startDatePeriod.getPeriodEnd())
  				+
  				getDaycount(endDatePeriod.getPeriodStart(), endDate) / getDaycount(endDatePeriod.getPeriodStart(), endDatePeriod.getPeriodEnd())
  				+
  				(periodIndexEndDate - periodIndexStartDate) - 1;
  
  		return periodFraction / frequency;
  	}