code: private String getStartdate() {
          Map<String, String> bpd = this.getJobRestrictions();
          String days = bpd.get("timerange");
  
          String date = "";
          if (days != null && days.length() > 0 && days.matches("[0-9]{1,4}")) {
              Calendar cal = Calendar.getInstance();
              cal.add(Calendar.DATE, -Integer.parseInt(days));
              date = HBCIUtils.date2StringISO(cal.getTime());
          }
          log.info("earliest start date according to BPD: " + (date != null && date.length() > 0 ? date : "<none>"));
          return date;
      }
docs: Liefert das fruehest moegliche Startdatum fuer den Abruf der Umsaetze.
  Im Gegensatz zur alten MT940-Version ist es jetzt bei CAMT offensichtlich
  so, dass man (zumindest bei einigen Banken) nicht mehr pauschal das Start-Datum
  weglassen kann und die Bank dann alles an Daten liefert. Zumindest bei der
  Sparkasse kam dann die Fehlermeldung "9010:Abfrage uebersteigt gueltigen Zeitraum".
  Also muessen wir - falls kein Startdatum angegeben ist (daher als Default-Wert)
  selbst anhand der BPD herausfinden, was das Limit ist und dieses als Default-Wert
  verwenden.
  
  @return das fruehest moegliche Startdatum fuer den Abruf der Umsaetze.