code: @Override
      public BigDecimal apply(ChronoEntity<?> context) {
  
          long value = context.get(this.element).longValue();
          long min = context.getMinimum(this.element).longValue();
          long max = context.getMaximum(this.element).longValue();
  
          if (value > max) {
              value = max; // Schutz gegen Anomalien
          }
  
          if (value == min) {
              return BigDecimal.ZERO;
          }
  
          if (
              this.extendedRange
              && (context instanceof PlainTime)
              && !PlainTime.class.cast(context).hasReducedRange(this.element)
          ) {
              if (value == max) {
                  return BigDecimal.ONE;
              }
              max--;
          }
  
          BigDecimal count = new BigDecimal(value - min).setScale(15, RoundingMode.UNNECESSARY);
          BigDecimal divisor = new BigDecimal(max - min + 1);
  
          return count.divide(divisor, RoundingMode.HALF_UP).stripTrailingZeros();
  
      }
docs: ~ Methoden ----------------------------------------------------------