Was ist an dieser Datum-Methode falsch?

Status
Nicht offen für weitere Antworten.
A

altes-kind

Gast
Hallo Leute,

ich habe folgende Methode um die Dauer in Tagen zwischen zwei Datumswerten zu berechnen

Code:
/**
* Berechnung eines Zeitraumes in Tagen - Parameter in interner Darstellung
*/
public long determineDuration(String from, String to) {
    long days = 0;
    long ms1 = 0;
    long ms2 = 0;
    try {
        Calendar date1 = Calendar.getInstance();
        date1.clear();
        date1.set(Integer.parseInt( from.substring( 0, 4 ) ),
        Integer.parseInt( from.substring( 4, 6 ) ),
        Integer.parseInt( from.substring( 6, 8 ) ));
        ms1 = date1.getTime().getTime() / ( 1000 * 60 * 60 * 24 );
        Calendar date2 = Calendar.getInstance();
        date2.clear();
        date2.set(Integer.parseInt( to.substring( 0, 4 ) ),
        Integer.parseInt( to.substring( 4, 6 ) ),
        Integer.parseInt( to.substring( 6, 8 ) ));
        ms2 = date2.getTime().getTime() / ( 1000 * 60 * 60 * 24 );
    }
    catch ( Exception e ) {
        System.out.println("Class 'Datum' - Method 'determineDuration()': "+e.toString());
    }
    days = ms1 < ms2 ? ms2 + 1 - ms1 : 0;
    return days;
}
Wenn ich nun z.B. die Anzahl der Tage zwischen dem 17.06.2005 und 30.08.2005 berechnen will kommt er auf folgendes Ergebnis:
Code:
determineDuration(20050617, 20050830) = 76
Wenn ich die gleiche Methode über in diesem Fall alle 3 Monate laufen lasse kommt er auf folgende Ergebnisse:
Code:
determineDuration(20050617, 20050630) = 14
determineDuration(20050701, 20050731) = 31
determineDuration(20050801, 20050830) = 30
------------------------------------------
SUMME = 75
Warum kommt diese Differenz (76 Tage zu 75 Tage) zustande??

Danke für eure Hilfe!

altes-kind
 
A

altes-kind

Gast
Code:
/**
 * Berechnung eines Zeitraumes in Tagen mit Klasse java.util.GregorianCalendar
 * - Parameter in interner Darstellung
 */    
public long determineDurationGC(String from, String to) {
    long time = 0;
    long days = 0;
    GregorianCalendar gc1 = new GregorianCalendar();
    GregorianCalendar gc2 = new GregorianCalendar();
    try {
        gc1.set(Integer.parseInt( from.substring( 0, 4 ) ), // Jahr
        Integer.parseInt( from.substring( 4, 6 ) ),         // Monat
        Integer.parseInt( from.substring( 6, 8 ) ),         // Tag
        0, 0, 0);                                           // Stunde, Minute, Sekunde
        gc2.set(Integer.parseInt( to.substring( 0, 4 ) ),   // Jahr
        Integer.parseInt( to.substring( 4, 6 ) ),           // Monat
        Integer.parseInt( to.substring( 6, 8 ) ),           // Tag
        23, 59, 59);                                        // Stunde, Minute, Sekunde
        time = gc2.getTime().getTime() - gc1.getTime().getTime();
        days = Math.round( (double)time / (24. * 60.*60.*1000.) ); 
    }
    catch ( Exception e ) {
        System.out.println("Class 'Datum' - Method 'determineDurationGC()': "+e.toString());
    }
    return days;
}

Auch mit dieser Version kommt man auf die Differenz (76 Tage zu 75 Tage)! Warum?

Danke!

altes-kind
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Datum in dieser Range SQL? Java Basics - Anfänger-Themen 3
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
K Warum zeigt dieser reguläre Ausdruck true an? Java Basics - Anfänger-Themen 1
N Was bedeutet dieser Fehler Java Basics - Anfänger-Themen 2
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
P Was bedeutet dieser Fehler? Java Basics - Anfänger-Themen 31
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
S Warum dieser Fehler? Java Basics - Anfänger-Themen 1
R Dieser Code sagt mir nichts... Java Basics - Anfänger-Themen 4
D Erste Schritte Lösen dieser Aufgabe, Hilfe! Java Basics - Anfänger-Themen 12
J Brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 3
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
M Frage, wie dieser Code funktioniert, bzw. weshab er bei mir nicht funktioniert Java Basics - Anfänger-Themen 4
L Hilfe! Was macht dieser Code? Java Basics - Anfänger-Themen 1
S Erste Schritte Was bedeutet dieser Code? Java Basics - Anfänger-Themen 2
D Erste Schritte Was bedeutet dieser Code? Java Basics - Anfänger-Themen 23
V Operatoren Warum kommt nicht das gewünschte Ergebnis dieser Operation? Java Basics - Anfänger-Themen 3
R Gibt es Eine einfache Programierung dieser Methoden Java Basics - Anfänger-Themen 8
G Lastet dieser Code den Arbeitsspeicher eines Handys aus? Java Basics - Anfänger-Themen 7
B Was passiert in dieser Methode? Java Basics - Anfänger-Themen 3
Nicole1989 Was Bewirkt dieser Java Code? Java Basics - Anfänger-Themen 4
B Summe aller Zahlen von 1 bis zu dieser Zahl (ohne while oder for schleife) Java Basics - Anfänger-Themen 4
J Wo liegt nur an dieser einfachen Bedingung mein Fehler? Java Basics - Anfänger-Themen 8
A Wieso funktioniert dieser Timer nicht?? Java Basics - Anfänger-Themen 3
C Warum funktioniert dieser Code nicht? Java Basics - Anfänger-Themen 2
A Lässt sich dieser Ausdruck irgendwie einfacher schreiben? Java Basics - Anfänger-Themen 4
H Geht dieser Code noch einfacher (try catch finally) Java Basics - Anfänger-Themen 7
P Geht dieser Code noch einfacher? Java Basics - Anfänger-Themen 16
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
F OOP Warum funktioniert dieser Regex? Java Basics - Anfänger-Themen 15
S Was bedeutet dieser ausdruck? Java Basics - Anfänger-Themen 9
P Unterschied dieser 2 code Zeilen Java Basics - Anfänger-Themen 12
StrikeTom Was ist an dieser einfachen funktion falsch? Java Basics - Anfänger-Themen 5
M Wieso funktioniert dieser simple Code nicht? Java Basics - Anfänger-Themen 9
M prozess starten und warten bis dieser sich beendet Java Basics - Anfänger-Themen 3
P Was macht dieser Source code? Java Basics - Anfänger-Themen 5
S OOP Wie muss meine Klasse zu dieser main aussehen? Java Basics - Anfänger-Themen 5
0 Was bedeutet dieser Generic-code? Java Basics - Anfänger-Themen 3
H Wie so ein Exception in dieser HashMap? Java Basics - Anfänger-Themen 7
K Was wird in dieser Frage gemeint ? Java Basics - Anfänger-Themen 15
V Wie und wieso geht dieser Methodenaufruf? Java Basics - Anfänger-Themen 2
G Versteh nicht was an dieser If-Anweisung falsch ist Java Basics - Anfänger-Themen 2
S Ursache dieser Fehlermeldung (access dinied) Java Basics - Anfänger-Themen 3
A Was macht dieser Prgrammteil? Java Basics - Anfänger-Themen 2
B Warum hat dieser einfache Algorithmus lineare Laufzeit? Java Basics - Anfänger-Themen 3
B Wieso funktioniert dieser Vergleich nicht? Java Basics - Anfänger-Themen 3
A Welche dieser Schleifen im TableCellRendererist effizienter? Java Basics - Anfänger-Themen 18
G Was macht dieser Code? Java Basics - Anfänger-Themen 3
J Was sagt mir dieser Ausdruck? Java Basics - Anfänger-Themen 9
S Brauche hilfe zu dieser AUfgabe Java Basics - Anfänger-Themen 4
M Was ist an dieser case-Anweisung falsch? Java Basics - Anfänger-Themen 2
R Was bewirkt dieser Code? Java Basics - Anfänger-Themen 6
C Darstellung von Datum - Codes richtig? Java Basics - Anfänger-Themen 2
L Datum - Monat und Jahr werden falsch angezeigt Java Basics - Anfänger-Themen 4
T Datum als Variable wert Java Basics - Anfänger-Themen 4
T Datum in die als Variabelwert Java Basics - Anfänger-Themen 5
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5
W Methode, die mit einem Datum arbeitet? Java Basics - Anfänger-Themen 22
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
J Datum ermitteln ? Java Basics - Anfänger-Themen 14
KogoroMori21 Java Datum Differenz (kleiner Fehler) Java Basics - Anfänger-Themen 10
J JDatePicker: Datum wird nicht in Textfeld übernommen Java Basics - Anfänger-Themen 5
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Datum und Uhrzeit Java Basics - Anfänger-Themen 4
B Liste von Tagen generieren ab einem bestimmten Datum und Endedatum Java Basics - Anfänger-Themen 4
F Ein Datum (int) durch Methode als String formatieren Java Basics - Anfänger-Themen 2
D Kontoauszüge von bestimmtem Datum Java Basics - Anfänger-Themen 35
B Termine (Datum erstellen), Abhängig von Intervallen Java Basics - Anfänger-Themen 0
A Nächstes Datum ausgeben, if-Schleife unklar Java Basics - Anfänger-Themen 6
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
Bluedaishi Datum in Jtextarea füllen Java Basics - Anfänger-Themen 5
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
S Datum umformatieren Java Basics - Anfänger-Themen 2
D Datum aus Swing in MySQL DB speichern Java Basics - Anfänger-Themen 22
F LimitedQueue auf Datum prüfen Java Basics - Anfänger-Themen 6
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
D Projekte + Datum + löschen Java Basics - Anfänger-Themen 11
M Datum serialisieren Java Basics - Anfänger-Themen 1
S Datum einlesen Java Basics - Anfänger-Themen 1
D Aktuelles Datum wird falsch ausgegeben Java Basics - Anfänger-Themen 2
K Methoden Datum parsen Java Basics - Anfänger-Themen 16
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
MiMa Jüngstes Datum ermitteln Java Basics - Anfänger-Themen 4
2 Uhrzeit und Datum aktualisieren Java Basics - Anfänger-Themen 12
R Problem beim Wochenplan (Datum,Wochentag) Java Basics - Anfänger-Themen 30
O Datum-Werte gruppieren Java Basics - Anfänger-Themen 6
J Java Datum- Zeit Differenz bilden! Java Basics - Anfänger-Themen 4
M Methoden Aus Timestamp das Datum berechnen Java Basics - Anfänger-Themen 3
B Kontoauszug mit Datum ausgeben Java Basics - Anfänger-Themen 4
M Datum in Millisekunden allerdings ohne Uhrzeit Java Basics - Anfänger-Themen 4
DeVolt Java8 Paket Time: Datum prüfen / try-catch Java Basics - Anfänger-Themen 1
T Datum mit einem Datums-Bereich vergleichen Java Basics - Anfänger-Themen 10
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben