Altersberechnung falsch auf 1-2 Tage

Status
Nicht offen für weitere Antworten.
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 :
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
 
S

shad0w

Gast
Hi,

Ein Jahr hat nicht immer 365 Tage, sondern 365 oder 366 (wg. Schalttag 29. Februar).
Ein Tag hat nicht immer 24 Stunden, sondern 23-25 (wg. Umschaltung Sommer/Winterzeit).
Eine Minute hat nicht immer 60 Sekunden, sondern 59-61 (wg. Schaltsekunde).

Es ist sogar so, dass wir jetzt noch nicht genau sagen können, wie viele Sekunden dieses Jahr noch haben wird! Denn es könnte sein, dass, wegen der unregelmäßigen Rotation der Erde, z.B. am 31. Dezember um 23:59:59 eine Schaltsekunde eingefügt werden müsste; das wäre dann 23:59:60.

Das liegt alles daran, weil man die Sekunde vom Lauf der Erde abgekoppelt hat und stattdessen aufgrund von Frequenzen auf atomarer Ebene definiert hat.

OK, deswegen basiert dein Code auf falschen Annahmen, führt also zu falschen Ergebnissen.

Es ist gar nicht so leicht, das korrekt hinzukriegen... Leider fehlt diese Funktionalität in der Java API, soweit ich weiß.
Ich werde es morgen mal versuchen.

bye
shad0w
 
S

shad0w

Gast
Hallo nochmal,

also ich denke mal, Selbermachen hat nicht so viel Sinn bei einer grundlegenden Sache wie dieser.

Ich würde dir joda time empfehlen:

http://joda-time.sourceforge.net/

Übrigens habe ich im letzten Posting einen Fehler gemacht: Ein Tag hat doch immer 24 Stunden! Zur Sommer-/Winterzeitumstellung ist es stattdessen so, dass wir offiziell die Zeitzone wechseln (CET/CEST), also der Verlauf unseres Kalenders ist dann bei der Umstellung korrekterweise so:

...
26.10.08 00:00 CEST
26.10.08 01:00 CEST
26.10.08 02:00 CEST
26.10.08 02:00 CET
26.10.08 03:00 CET
26.10.08 04:00 CET
...

bye
shad0w
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Review von euch erwünscht, double Rechnung falsch Java Basics - Anfänger-Themen 34
L Datum - Monat und Jahr werden falsch angezeigt Java Basics - Anfänger-Themen 4
C negamax-Algorithmus für Tic-Tac-Toe spielt manchmal falsch Java Basics - Anfänger-Themen 10
W LocalDate toString und nach Split falsch "erkannt"? Java Basics - Anfänger-Themen 8
M Dialogbox sofort neustarten, falls aktuelle Eingabe falsch Java Basics - Anfänger-Themen 11
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
O Warum ist meine Antwort falsch? Java Basics - Anfänger-Themen 3
O Warum ist die Auswahl falsch? Java Basics - Anfänger-Themen 4
J Erste Schritte Was mache ich in meinem Code falsch. Java Basics - Anfänger-Themen 3
M Was habe ich hier falsch, dass wenn ich z.B.: 11 eingebe mir false zurück gegeben wird? Java Basics - Anfänger-Themen 2
Kapfski Was habe ich falsch gemacht? Hilfe! Java Basics - Anfänger-Themen 17
R FXMLLoader Pfad falsch`? Java Basics - Anfänger-Themen 4
S Berechnung der sleep time ist falsch Java Basics - Anfänger-Themen 46
D Zahlen werden falsch gekürzt :? Java Basics - Anfänger-Themen 27
J String wird in GUI falsch ausgegeben Java Basics - Anfänger-Themen 10
A Figur erkennen, aber Abweichung falsch Java Basics - Anfänger-Themen 2
J Was mache ich falsch in meiner Java Anwendung? Java Basics - Anfänger-Themen 11
N Javac -version der Befehl ist entweder falsch geschrieben oder...... Java Basics - Anfänger-Themen 8
Z Klassen Error: ';' expected - was mache ich falsch? Java Basics - Anfänger-Themen 4
A Ich habe das Gefühl etwas grundlegendes falsch zu machen Java Basics - Anfänger-Themen 6
L Ist an diesem Befehl irgendwas falsch? Java Basics - Anfänger-Themen 2
D Probleme beim Kompelieren mache ich etwas falsch ? Java Basics - Anfänger-Themen 3
M Was ist daran falsch Java Basics - Anfänger-Themen 2
A Arrays addieren- Was mache ich falsch?? Java Basics - Anfänger-Themen 2
S Code richtig / besser machbar? (Nicht sicher, ob Code selbst falsch ist) Java Basics - Anfänger-Themen 4
L AES - Irgendwas falsch? Java Basics - Anfänger-Themen 0
H Koordinaten gehen falsch ! Java Basics - Anfänger-Themen 13
I Programm von mir - keine Ahnung mehr ob richtig falsch:-( Java Basics - Anfänger-Themen 6
B Wieso wird hier so viel als falsch angezeigt? Java Basics - Anfänger-Themen 2
JavaNewbie2.0 Was ist falsch? Java Basics - Anfänger-Themen 2
JavaNewbie2.0 Was ist falsch? Java Basics - Anfänger-Themen 23
D Prozente werden falsch berechnet Java Basics - Anfänger-Themen 8
F for Schleife zählt falsch Java Basics - Anfänger-Themen 6
S Variable wird falsch gesetzt Java Basics - Anfänger-Themen 5
J ArrayList wird in JTable falsch angezeigt Java Basics - Anfänger-Themen 0
D Aktuelles Datum wird falsch ausgegeben Java Basics - Anfänger-Themen 2
B Drucken: Default Paper von Drucker? Mein Drucker druckt falsch Java Basics - Anfänger-Themen 3
D Matritzenmultiplikation berechnet Werte falsch Java Basics - Anfänger-Themen 9
J ireport Designer / CSV / Sonderzeichen was läuft falsch Java Basics - Anfänger-Themen 7
W Was ist bei folgendem Code falsch? Java Basics - Anfänger-Themen 5
C Array wird falsch befüllt? Java Basics - Anfänger-Themen 7
L Methoden Histogramm, Methode berechnet falsch. Java Basics - Anfänger-Themen 7
Silvascus Was mache ich falsch? Java Basics - Anfänger-Themen 15
L Variable an andere Klasse weitergeben - Was mache ich falsch? Java Basics - Anfänger-Themen 2
C Variablen if Anweisung falsch gesetzt Java Basics - Anfänger-Themen 4
J Java rechnet -0.94 + 0.01 falsch Java Basics - Anfänger-Themen 14
J Dekrement läuft offenbar falsch Java Basics - Anfänger-Themen 6
X Warum ist das falsch -.- Java Basics - Anfänger-Themen 4
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13
J Java: Was habe ich falsch gemacht? Java Basics - Anfänger-Themen 4
T Input/Output GregorianCalender gibt falsch aus? Java Basics - Anfänger-Themen 4
F Byte Ausgabe plötzlich falsch Java Basics - Anfänger-Themen 0
O Zeitmessung falsch Java Basics - Anfänger-Themen 7
J Klassen Fehler Datei kopieren - was mache ich falsch Java Basics - Anfänger-Themen 19
C Ausgabe vom Array falsch ? Java Basics - Anfänger-Themen 3
S Mengenklammer falsch, Warum? Java Basics - Anfänger-Themen 6
J BlueJ öffnet package falsch Java Basics - Anfänger-Themen 2
C Extrem einfache Aufgabe falsch beantwortet :$ Java Basics - Anfänger-Themen 6
H Punkte werden falsch verbunden Java Basics - Anfänger-Themen 6
F String wird richtig in konsole geschrieben aber falsch an Methode übergeben Java Basics - Anfänger-Themen 8
K Runnable oder Keyadapter läuft falsch Java Basics - Anfänger-Themen 4
U Attributsnamen korrekt oder falsch? Java Basics - Anfänger-Themen 4
B Bewegung falsch Java Basics - Anfänger-Themen 33
M .jar wird falsch generiert? Java Basics - Anfänger-Themen 9
A Methoden repaint() zeichnet JPanel falsch Java Basics - Anfänger-Themen 3
M Classpath Jar nicht ausführbar, Classpath warscheinlich falsch Java Basics - Anfänger-Themen 10
D Warum ist diese Interfacedeklaration falsch? Java Basics - Anfänger-Themen 5
A Textdatei einlesen - erstes Zeichen falsch Java Basics - Anfänger-Themen 20
M Was ist daran falsch ? Java Basics - Anfänger-Themen 5
M ; Fehler. Was ist falsch? Java Basics - Anfänger-Themen 4
K Was ist hier Falsch? Java Basics - Anfänger-Themen 3
B Eclipse zeigt code als falsch an Java Basics - Anfänger-Themen 19
R Ausgabe wird falsch angezeigt! Java Basics - Anfänger-Themen 14
O BufferedImage drehen, falsch positioniert Java Basics - Anfänger-Themen 5
L Erste Schritte Was mach ich falsch? thx Java Basics - Anfänger-Themen 3
M Erste Schritte Nachkommastellen falsch bei Rechnung Java Basics - Anfänger-Themen 3
E Kann mir jemand sagen was hier falsch ist? Java Basics - Anfänger-Themen 6
X cmd stellt falsch/zu weinig dar Java Basics - Anfänger-Themen 4
A Variablen Was mache Ich falsch? Java Basics - Anfänger-Themen 5
K Array fehler... was mach ich falsch? Java Basics - Anfänger-Themen 3
M Erste Schritte Jcreator falsch eingerichtet? Java Basics - Anfänger-Themen 10
W Was ist falsch? Java Basics - Anfänger-Themen 14
P Java rechnet falsch! (ab 6stelligen Zahlen) Java Basics - Anfänger-Themen 14
T Diagrammwerte werden falsch herum angezeigt Java Basics - Anfänger-Themen 6
A was mache ich falsch? Java Basics - Anfänger-Themen 3
1 Integer wird falsch in Datei geschrieben Java Basics - Anfänger-Themen 13
Z css pfad falsch Java Basics - Anfänger-Themen 7
M exception catch falsch? Java Basics - Anfänger-Themen 11
E Comparator sortiert falsch... Java Basics - Anfänger-Themen 2
X Primzahl Ausgabe falsch Java Basics - Anfänger-Themen 10
V Eingabe String wird falsch erkannt Java Basics - Anfänger-Themen 7
U Was ist an diesem Code falsch? Java Basics - Anfänger-Themen 10
StrikeTom Was ist an dieser einfachen funktion falsch? Java Basics - Anfänger-Themen 5
StrikeTom Was ist falsch(Kolision) Java Basics - Anfänger-Themen 6
S Pfad für Datei falsch - wie richtig angeben? Java Basics - Anfänger-Themen 7
P Was ist hier falsch? Java Basics - Anfänger-Themen 6
B Warum kommt immer die 0 als Ergebnis? Was habe ich falsch gemacht? Java Basics - Anfänger-Themen 18
S wieso ist mein Code falsch? Java Basics - Anfänger-Themen 2
W Grid Layout wird falsch dargestellt Java Basics - Anfänger-Themen 4
R jLabel.setBackground - falsch angewendet? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben