code: public static Duration<CalendarUnit> ofCalendarUnits(
          int years,
          int months,
          int days
      ) {
  
          List<Item<CalendarUnit>> items = new ArrayList<>(3);
  
          if (years != 0) {
              items.add(Item.of(years, YEARS));
          }
  
          if (months != 0) {
              items.add(Item.of(months, MONTHS));
          }
  
          if (days != 0) {
              items.add(Item.of(days, DAYS));
          }
  
          return new Duration<>(items, false);
  
      }
docs: /*[deutsch]
  <p>Erzeugt eine positive Zeitspanne in Jahren, Monaten und Tagen. </p>
  
  <p>Alle Argumente d&uuml;rfen nicht negativ sein. Ist ein Argument
  gleich {@code 0}, wird es ignoriert. Wird eine negative Zeitspanne
  gew&uuml;nscht, kann auf dem Ergebnis einfach {@code inverse()}
  aufgerufen werden. </p>
  
  @param   years       amount in years
  @param   months      amount in months
  @param   days        amount in days
  @return  new duration
  @throws  IllegalArgumentException if any argument is negative
  @see     #inverse()