G
Gast
Gast
Hi ihr fleissigen Java - Bienen
ich möchte durch die Angabe des Geburtstages einer Person das Alter berechnen. Dazu habe ich folgende Klasse geschrieben:
Nun habe ich noch eine GUI, wo das Alter eingegeben wird und einen Handler, der die eingebenen Stammdaten auf die Datenbank schreiben soll. Hier die entsprechende Handler Methode:
Der Kunde soll je nach Geburtsdatum eine unterschiedliche Einstufung bekommen, das hab ich mal versucht in der Klasse Kunde wie folgt festzuhalten:
Hui, schon mal ganz schön viel Code
Jetzt muss ich ja bei der Handler Methode noch die Kondition mit übergeben, damit diese in die DB geschrieben werden kann. Leider hab ich jetzt den Überblick verloren und weiss nicht mehr weiter (vielleicht hänge ich schon zu lange vor dem Computer). Wie baue ich denn die berechnung des Alters und die Einstufung (Kondition) in die HandlerMethode erfassenStammdaten ???
Danke für eure Hilfe!
Grüssle
Claudi
ich möchte durch die Angabe des Geburtstages einer Person das Alter berechnen. Dazu habe ich folgende Klasse geschrieben:
Code:
package Fachklassen;
import java.util.Calendar; //Aktuelles Datum abfragen
public class Alter {
public Alter() {
}
private int alter;
private int gebDatum;
Calendar aktDatum = Calendar.getInstance(); //Aktuelles Datum mit Calendar abfragen (Quelle: [url]http://www.pearson.ch/download/media/3827322294_SP.pdf[/url])
public void showDate() {
System.out.println(java.text.DateFormat.getDateTimeInstance().format(aktDatum.getTime()) );
}
//Alter aus Geburtsdatum über Mehtoder alter() ermitteln (Quelle: [url]http://www.pearson.ch/download/media/3827322294_SP.pdf[/url])
//Berechnet, welches Alter eine Person, die am "birthdate" geboren wurde, am "otherDate" hat
public static int alter (Calendar gebDatum, Calendar aktDatum) {
int alter = 0;
//anderes Datum liegt vor Geburtsdatum
if (aktDatum.before(gebDatum))
return -1;
//Jahresunterschied berechnen
alter = aktDatum.get(Calendar.YEAR) - gebDatum.get(Calendar.YEAR);
//Prüfen, ob Tag in otherDate vor Tag in birthdate liegt. Wenn ja, Alter um 1 Jahr vermindern
if ( (aktDatum.get(Calendar.MONTH) < gebDatum.get(Calendar.MONTH))
||(aktDatum.get(Calendar.MONTH) == gebDatum.get(Calendar.MONTH)
&& aktDatum.get(Calendar.DAY_OF_MONTH) < gebDatum.get(Calendar.DAY_OF_MONTH)))
--alter;
return alter;
}
}
Nun habe ich noch eine GUI, wo das Alter eingegeben wird und einen Handler, der die eingebenen Stammdaten auf die Datenbank schreiben soll. Hier die entsprechende Handler Methode:
Code:
public void erfassenStammdaten(String name, String vorname, String strasse, int plz, String ort, int gebDatum, boolean behinderung) {
this.einKunde = new Kunde(name, vorname, strasse, plz, ort, gebDatum, behinderung); //erzeugt neues Objekt Kunde übergibt Konstruktor die Daten
try {
Datenbankklassen.DbHandler hd = new Datenbankklassen.DbHandler(); // DbHandler Objekt erzeugen
hd.schreibeKunde(einKunde); // Kunde auf DB geschrieben
Dialogklassen.erfassenNutzungsrecht nr = new Dialogklassen.erfassenNutzungsrecht(this); //nach Schreiben der Kundedaten wird neues Fenster (Nutzungsrechte) erzeugt //this = gibt Objekt von VerkaufenHandler an den erfassenNutzungsrecht
nr.show(); // zeigt das Fenster (Nutzungsrechte) an
}
catch (Exception e){
System.out.println(e);
}
}
Der Kunde soll je nach Geburtsdatum eine unterschiedliche Einstufung bekommen, das hab ich mal versucht in der Klasse Kunde wie folgt festzuhalten:
Code:
public int getKondition(Kunde einKunde) { //hier wird die Kondition des Kunden festgelegt, wichtig für die spätere Rabattberechnung
alter = einKunde.getAlter();
if (alter < 7) {
return 1; //Kind
}
else {
if (alter < 18) {
return 2; // Jugendlicher
}
else {
if (alter < 62) {
return 3; // Erwachsener
}
else {
return 4; // Senior
}
}
}
}
Hui, schon mal ganz schön viel Code
Danke für eure Hilfe!
Grüssle
Claudi