Eine Liste mit Geburtsdaten und Alter berechnen.

StillerRegen

Mitglied
Es gibt mir das aus:

1970-01-01,1970-01-01,1970-01-01
1970-01-01,1970-01-01,1970-01-01
1970-01-01,1970-01-01,1970-01-01
1970-01-01,1970-01-01,1970-01-01
1970-01-01,1970-01-01,1970-01-01

Mit LocalDateTime:

Java:
ArrayList<LocalDateTime>   Geburtstag = new ArrayList<LocalDateTime>();


while(rs.next()){
                LocalDateTime gday1 = rs.getDate("psn_geburtstag");  -->TypeMismatch: cannot convert from Date to LocalDate
                LocalDateTime gmonth2 = rs.getDate("psn_geburtsmonat"); --> Ebenfalls
                LocalDateTime gyear3 = rs.getDate("psn_geburtsjahr"); --> Ebenfalls
                
                Geburtstag.add(gday1);
                Geburtstag.add(gmonth2);
                Geburtstag.add(gyear3);
                
                System.out.format("%s,%s,%s\n", gday1,gmonth2,gyear3);
            }
 

vfl_freak

Premium-User
Moin,
Kann ich eine ArrayList<Integer> in Date/LocalDate etc. Konvertieren?
ein klares: kommt darauf an :LOL::confused:
Ein int-Wert kann durchaus einen konkreten Zeitpunkt in Form eines Date repräsentieren!

Ist Dir überhaupt, wie die unterschiedlichen Datumsformate/-typen aufgebaut sind ??
https://docs.oracle.com/javase/8/docs/api/java/util/Date.html
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html
Es gibt also für alles Konvertierungen, die musst Du allerdings ggf. händisch durchführen!
Eine einfache Zuweisung reicht da in KEINEM Fall !!

Vielleicht postest Du mal den Aufbau der Tabelle und auch mehr Code (und zwar bitte immer aktuell, wenn Du was ausprobiert hast) !!
Diese ganze Rätselraterei bringt doch nix!!

VG Klaus
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi,

nur mal so am Rande, weiss nicht ob ich es überlesen habe:
Java:
Date gday = rs.getDate("Geburtstag");
Date gmonth = rs.getDate("Geburtsmonat");
Date gyear = rs.getDate("Geburtsjahr");

Warum speicherst du jedes Feld (Tag, Monat, Jahr) in einzelnen Spalten der Tabelle?
Warum nimmst du nicht eine Spalte mit Typ "DATE", anstatt 3x "INT"?

Wenn du schon INT als Typ hast, musst du die Daten auch so aus dem ResultSet rausziehen:
Java:
int gday = rs.getInt("Geburtstag");
int gmonth = rs.getInt("Geburtsmonat");
int gyear = rs.getInt("Geburtsjahr");

LocalDate birthday = LocalDate.of(gyear, gmonth, gday);

Und das Alter einer Person kannst du übrigens auch von MySQL berechnen lassen, das musst du nicht in Java machen:
https://stackoverflow.com/a/19522129/1164913

Grüsse,
BK

// Edit: Natürlich nicht "getDate", sondern "getInt"...
 
Zuletzt bearbeitet:

StillerRegen

Mitglied
qqqqqqqwqwewqe.PNG

Das ist die Tabelle

@Bratkartoffel

Hey

Java:
int gday = rs.getInt("Geburtstag");
int gmonth = rs.getInt("Geburtsmonat");
int gyear = rs.getInt("Geburtsjahr");

LocalDate birthday = LocalDate.of(gyear, gmonth, gday); -->The method of(int, int, int) is undefined for the type LocalDate
 
Zuletzt bearbeitet:

HonniCilest

Erfahrenes Mitglied

Neue Beiträge