public static Calendar datum(String datumaanduiding) throws IllegalArgumentException {
        if (datumaanduiding.isEmpty()) {
            return null;
        }
        try {
            String[] datumSplit = datumaanduiding.split("-");
            if (datumSplit.length != 3) {
                throw new IllegalArgumentException("Datum bestaat niet uit drie delen");
            }

            int dag = Integer.parseInt(datumSplit[0]);
            if (dag <= 0 || dag > 31) {
                throw new IllegalArgumentException("Ongeldige dag");
            }

            int maand = Integer.parseInt(datumSplit[1]);
            if (maand <= 0 || maand > 12) {
                throw new IllegalArgumentException("Ongeldige maand");
            }

            int jaar = Integer.parseInt(datumSplit[2]);

            // maanden zijn binnen GregorianCalendar van 0 t/m 11 gecodeerd:
            return new GregorianCalendar(jaar, maand - 1, dag);
        } catch (NumberFormatException e) {
            throw new IllegalArgumentException("dag, maand of jaar heeft niet het juiste getalsformat");
        }
    }