Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
zwei GregorianCalender Datums von einander abziehen-> Problem!
Hallo,
ich habe in einem Buch und durch eigenes Denken versucht die Differenz von zwei Daten in Tagen (GregorianCalender) über die Millisekunden zu berechnen.
Die Daten sind einmal der 21.1.2013 und der 31.3.2013 (d2=1364684400000 - d1=1358722800000)
und
der 21.1.2013 und der 1.4.2013 ( d2=1364767200000 - d1=1358722800000)
die Ergebnisse sind volgende:
(1364684400000 - 1358722800000) / 86400000 =69
Habe in einem anderen Thread gelesen, dass die Joda Time API empfohlen wird.
Und direkt auf der Seite werden einige Methoden präsentiert, dabei ist genau das was du suchst
Hallo,
danke erst mal für die schnelle Hilfe!
ich werd erst mal die Lösung von DrZoidberg ausprobieren.
Von JODA hab ich auch schon gehört. Ich hab es auch schon mal in einem anderen Versuch verwwendet, wollte es aber in diesem Projekt mal ohne versuchen.
Danke erst mal.
public int getDatumDiferenz(GregorianCalendar istDatum) {
istDatum.setTimeZone(new SimpleTimeZone(0, ""));
beginDatum.setTimeZone(new SimpleTimeZone(0, ""));
long d2 = istDatum.getTimeInMillis();
System.out.println(" d2="+d2);
long d1 = beginDatum.getTimeInMillis();
System.out.println(" d1="+d1);
int ergebnis = (int) ((d2 - d1) / 86400000);
return ergebnis;
}
gibt jetzt einen Fehler bei der Berechnung der Differenz ganz am Anfang.
Kann es sein das ich die Festlegung auf die TimeZone viel früher einbauen muss und nicht erst in der Methode?
21.01.2013
d2=1358722800000
d1=1358726400000
0 differenz zu Zyklusbeginn
22.01.2013
d2=1358809200000
d1=1358726400000
0 differenz zu Zyklusbeginn
23.01.2013
d2=1358895600000
d1=1358726400000
1 differenz zu Zyklusbeginn
Hab den Fehler gefunden!!! man muss tatsächlich drauf achten das in so einem Fall alle Datumswerte die an diese Methode übergeben werden und das vor allem jeder datumswert der im Programm generiert wird gleih in SimpleTime(0,"") erstellt wird!!!
Hallo,
aufgrund solcher Fehler kann ich eigentlich nur JODA empfehlen, obwohl die verwendung für Anfänger erst ein bischen Gewöhnung bedarf. (Ich versuche Java mit hilfe des javavideokurs.de zu lernen)
:rtfm:
Hier och ein Nachtrag:
Ich habe es jetzt umgebastelt fürJODA DateTime. Bei der Berrechnung mit den Millisekunden gibt es bei der Zeitumstellung von Winter auf Sommerzeit das gleiche Probllem wie mit Calendar / GregorianCalendar .
Aber mit JODA kann man auch sehr einfach über eine Methode die differenz Tage errechnen und die stimmt...:toll: