JavaFX Datepicker

emibo74

Mitglied
Hallo,
ich programmiere grade zum lernen einen Fussballverein Mitglied aufnehmen.
Nun hab ich einen DatePicker wo ich ich das Geburtsdatum vom Mitglied eingebe z.b. 01.01.2006 (Mitglied ist 11 Jahre alt), das heist wenn mein Mitglied 11 Jahre alt ist kann ich nur U11 auswählen, falls ich U14 auswähle soll er mir eine Fehlermeldung ausgeben.

sprich wie kann ich einstellen das der/die Person genau 11 Jahre ab dem heutigem Datum ist.

soweit bin ich gekommen jedoch komme ich nicht weiter, hier passiert das alle 2014-2015 gehen. Wass ich will ist ohne 2014

Code:
        if (dpA.getValue() != null && !(dpA.getValue().isBefore(LocalDate.now().minusYears(2))
                && dpA.getValue().isAfter(LocalDate.now().minusYears(3)))) {
           
            Alert meldung = new Alert(Alert.AlertType.ERROR,"error");
            meldung.showAndWait();
            dpA.requestFocus();
            return;
        }

Danke im Voraus
 

Robat

Top Contributor
Nimm es mir nicht übel, aber es ist wirklich sehr schwer überhaupt zu verstehen was du möchtest.

Momentan prüfst du ja, ob die Jahreszahl des ausgewählten Datums in einem Bereich liegt. (In deinem Fall zwischen heute (also 2017) - 2 Jahre und heute (also 2017) - 3 Jahre.) Du bekommst also eine Spanne von 2014-2015. Wenn du jetzt nur 2015 möchtest dann prüf doch auch nur auf 2015? (also Jahrszahl - 2 Jahre).

Sollte ich dich falsch verstanden haben dann erkläre es bitte noch mal vielleicht an einem Beispiel :)
 

krgewb

Top Contributor
sprich wie kann ich einstellen das der/die Person genau 11 Jahre ab dem heutigem Datum ist.

Du musst zusätzlich noch plusDays(1) schreiben.

Das folgende Programm kann für ein beliebiges Kind sagen, ob es 11 ist.
Java:
import java.time.LocalDate;
import java.time.Month;

public class Hauptprogramm {

    public static void main(String[] args) {

        System.out.println("Heutiges Datum: " + LocalDate.now());
        System.out.println("Heute vor 11 Jahren: " + LocalDate.now().minusYears(11) + "\n");

        LocalDate geburtstag = LocalDate.of(2006, Month.MARCH, 24);

        if (geburtstag.isBefore(LocalDate.now().minusYears(11).plusDays(1))
                && geburtstag.isAfter(LocalDate.now().minusYears(12))) {
            System.out.println("Das Kind ist 11.");
        }

        else {
            System.out.println(
                    "Das Kind ist nicht genau 11. Es ist also schon 12 bzw. noch älter ODER erst 10 bzw. noch jünger.");
        }

    }

}
 
Zuletzt bearbeitet:

emibo74

Mitglied
Du musst zusätzlich noch plusDays(1) schreiben.

Das folgende Programm kann für ein beliebiges Kind sagen, ob es 11 ist.
Java:
import java.time.LocalDate;
import java.time.Month;

public class Hauptprogramm {

    public static void main(String[] args) {

        System.out.println("Heutiges Datum: " + LocalDate.now());
        System.out.println("Heute vor 11 Jahren: " + LocalDate.now().minusYears(11) + "\n");

        LocalDate geburtstag = LocalDate.of(2006, Month.MARCH, 24);

        if (geburtstag.isBefore(LocalDate.now().minusYears(11).plusDays(1))
                && geburtstag.isAfter(LocalDate.now().minusYears(12))) {
            System.out.println("Das Kind ist 11.");
        }

        else {
            System.out.println(
                    "Das Kind ist nicht genau 11. Es ist also schon 12 bzw. noch älter ODER erst 10 bzw. noch jünger.");
        }

    }

}

genau das habe ich gesucht Vielen dank :D
 

Ähnliche Java Themen

Neue Themen


Oben