G
Guest
Gast
Hi,
bin dabei ein paar Methoden der Klasse GregorianCalendar zu erlernen und habe dazu ein simples Beispiel in Java geschrieben zur Berechnung des Alters.
Leider scheint das Alter auf 1-2 Tage falsch berechnet zu sein, komme aber nicht dahinter wieso
hier der Code :
der Code ist selbsterklärend, die Methode System.currentTimeMillis() liefert mir die aktuelle Zeit in Milisekunden zurück und mit getTimeinMillis() kriege das eingegebene Datum in Milisekunden. Die Differenz wird als Jahr in der Variable Alter gespeichert und ausgegeben.
leider wird bei diesem Beispiel als Alter 8 ausgegeben was nicht der Tatsache entspricht. Wir schreiben heute den 4ten Oktober und Person x wird erst in 2 Tagen 8 Jahre alt und nicht schon 2 Tage davor. Das richtige Ergebnis wäre daher 7.
irgendwas muss ich übersehn haben ?
ändere ich den Tag auf > 6, ist das richitge Ergebnis zu sehen.
wäre für jeden Tipp sehr dankbar
vielen Dank
bin dabei ein paar Methoden der Klasse GregorianCalendar zu erlernen und habe dazu ein simples Beispiel in Java geschrieben zur Berechnung des Alters.
Leider scheint das Alter auf 1-2 Tage falsch berechnet zu sein, komme aber nicht dahinter wieso
hier der Code :
Code:
public static void main(String[] args)
{
int jahr = 2000;
int monat = Calendar.OCTOBER;
int tag = 6;
long alter;
alter = (System.currentTimeMillis() - new GregorianCalendar( jahr, monat, tag ).getTimeInMillis()) / 1000/60/60/24/365;
System.out.println("alter: "+ alter );
}
der Code ist selbsterklärend, die Methode System.currentTimeMillis() liefert mir die aktuelle Zeit in Milisekunden zurück und mit getTimeinMillis() kriege das eingegebene Datum in Milisekunden. Die Differenz wird als Jahr in der Variable Alter gespeichert und ausgegeben.
leider wird bei diesem Beispiel als Alter 8 ausgegeben was nicht der Tatsache entspricht. Wir schreiben heute den 4ten Oktober und Person x wird erst in 2 Tagen 8 Jahre alt und nicht schon 2 Tage davor. Das richtige Ergebnis wäre daher 7.
irgendwas muss ich übersehn haben ?
ändere ich den Tag auf > 6, ist das richitge Ergebnis zu sehen.
wäre für jeden Tipp sehr dankbar
vielen Dank