Geburtsdaten von Mehreren Personen speichern und Alter ausgeben

KalterWinter

Mitglied
Hey an alle lieben Leser,

Ich habe in einer Datenbank, die Daten von Personen hinterlegt, Name, Geburtsdatum(Geburtstag,Geburtsmonat,Geburtsjahr), Wohnort etc.

Ich möchte die Geburtsdaten, der Personen, in einer Liste speichern, wenn das überhaupt Schlau genug ist und dann wenn jemand Geburtstag hat, soll das Alter berechnet werden.

z.B.
Liste(GDay,GMonth,GYear):

12,01,1990
09,05,1994
22,08,1993
30,03,1978
30,10,1980
23,11,1980

System erkennt, Oh 30.10. ist heute --> Alter ausrechnen.

Wie Speichere ich nun den Tag, den Monat, das Jahr von JEDEN in eine Liste?

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

while (rs.next()) {
               int gday = rs.getInt("Geburtstag");
               int gmonth = rs.getInt("Geburtsmonat");
               int gyear = rs.getInt("Geburtsjahr");
 
@Robat

Probiert und kein Erfolg

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);
           }
 
Ich hab ehrlich gesagt keine Ahnung was du da versuchst. Warum speicherst du Tag, Montag und Jahr denn jeweils getrennt als Date ab? Wenn schon unbedingt getrennt, dann doch lieber als Zahl. Ein Tag ergibt ja noch kein komplettest Datum.

In Java gibt es die Klasse LocalDate um ein Datum (Tag, Monat, Jahr) abzuspeichern. Wenn du ein Datum aus einer Datenbank (Tag, Monat, Jahr) in Java speichern willst, kannst du folgendes machen:
Java:
LocalDate date= resultSet.getDate("date").toLocalDate();
Jede Person kann dann ein LocalDate-Objekt besitzen, welches das Geburtstdatum repräsentiert
 
Ja aber wenn du die 3 Werte als Integer abspeicherst, kannst du sowas machen:
Java:
int day = rs.getInt("day");
int month = rs.getInt("month");
int year = rs.getInt("year");
LocalDate date = LocalDate.of(year, month, day);
 
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
import org.joda.time.LocalDateTime;
import org.joda.time.format.DateTimeFormat;

Habe ich mit drinnen ja,
Es ist gleich in der Main-Methode drinne

public static void main(String[] args) {
 

Neue Themen


Zurück
Oben