docs: @Override
  	public double getDaycountFraction(LocalDate startDate, LocalDate endDate) {
  		if(startDate.isAfter(endDate)) {
  			return -getDaycountFraction(endDate,startDate);
  		}
  
  		/*
  		 * Number of whole years between start and end, excluding start's year and excluding end's year.
  		 *
  		 * If start and end fall in the same year, this is -1 (there will be a double counting of 1 year below if start < end).
  		 * If start and end fall in separate but consecutive years, this is 0 (for start and end the fractional parts are counted individually below).
  		 */
  		double daycountFraction = endDate.getYear() - startDate.getYear() - 1.0;
  
  		/*
  		 * Fraction from start to the end of start's year
  		 */
  		LocalDate startDateNextYear = LocalDate.of(startDate.getYear()+1,Month.JANUARY,1);
  
  		if(isCountLastDayNotFirst) {
  			startDateNextYear = startDateNextYear.minusDays(1);
  		}
  
  		daycountFraction += getDaycount(startDate, startDateNextYear) / startDate.lengthOfYear();
  
  		/*
  		 * Fraction from beginning of end's year to end
  		 */
  		LocalDate endDateStartYear = LocalDate.of(endDate.getYear(), Month.JANUARY, 1);
  		if (isCountLastDayNotFirst) {
  			endDateStartYear = endDateStartYear.minusDays(1);
  		}
  
  
  		daycountFraction += getDaycount(endDateStartYear, endDate) / endDate.lengthOfYear();
  
  		return Math.max(daycountFraction,0.0);
  	}