Differenz in Tagen von 2 Daten

Woggle

Mitglied
Huhu,
ich habe folgendes Problem:
Ich möchte gerne den Zeitraum zwischen 2 Daten in Tagen berechen. ich habe dazu folgenden code geschrieben:

Java:
					//Tag DIfferenz herausfinden
					Calendar dateDB = new GregorianCalendar();
					dateDB = new GregorianCalendar(rs.getInt("WannJahr"), rs.getInt("WannMonat"), rs.getInt("WannTag"));
					long event = dateDB.getTimeInMillis();
					
					Calendar heute = new GregorianCalendar();
					
					
					long ergebnis = (event - heute.getTimeInMillis()) / 86400000;

Das Datum von einem bestimmten Event habe ich, bereits in Tag, MOnat und Jahr geteilt, in eine Datenbank geschrieben. Diese wird auch korrekt ausgelesen.

Ich hole mir nun die Zeit in Millisekunden der beiden Daten, subtrahiere sie und rechne sie in Tage um. Allerdings stimmt das Ergebnis nicht. Wenn ich nun aus meiner Datenbank das Datum 29.01.2010 auslese, so bekomme ich als ergebnis 49. Doch eigentlich sollte es 19 sein.

Als weiteren versuch habe ich noch das Datum 03.02.2010 auslesen lassen, wobei ich als ergebnis 51 bekomme. Was ja schon gar nicht sein kann, da zwischen dem 29.01 und dem 03.02 mehr als nur 2 Tage liegen.

Wo genau liegt also mein Fehler?

Vielen Dank für die Hilfe :)
 

faetzminator

Gesperrter Benutzer
Erinnere ich mich da falsch - war es etwa in der Joda Time - oder beginnt ein Feld, meines Wissens der Monat, bei 0 und endet bei 11?
 

Woggle

Mitglied
Fein, vielen Dank schonmal. Allerdings stimmt es noch nicht ganz. Mein Code sieht nun so aus (Der Monat beginnt tatsächlich bei 0)

Java:
//Tag DIfferenz herausfinden
					Calendar dateDB = new GregorianCalendar();
					dateDB = new GregorianCalendar(rs.getInt("WannJahr"), rs.getInt("WannMonat"), rs.getInt("WannTag"));
					long event = dateDB.getTimeInMillis();
					
					Calendar heute = new GregorianCalendar();
					heute.set(Calendar.MONTH, (heute.get(Calendar.MONTH)) + 1); //Monat um 1 erhöhen, da dieses Feld bei 0 anfängt
					
					
					long ergebnis = (event - heute.getTimeInMillis()) / 86400000;

Allerdings bekomme ich als Ergebnis nun 18 Tage anstatt den korrekten 19. Liegt das eventuell an Rundungsfehlern?

Desweiteren stimmt das zweite Datum, das ich abfrage auch nicht, da es mir 20 Tage von heute bis zum 03.02 anzeigt... :noe:
 

madboy

Top Contributor
Monate haben eine unterschiedliche Anzahl von Tagen ;-)
Du kannst nicht einfach den aktuellen Monat erhöhen, du musst den anderen Monat um eins verringern:

Java:
dateDB = new GregorianCalendar(rs.getInt("WannJahr"), rs.getInt("WannMonat") - 1, rs.getInt("WannTag"));
                    long event = dateDB.getTimeInMillis();
                    
                    Calendar heute = new GregorianCalendar();
 
S

SlaterB

Gast
schau dir doch die Ergebnisse im Detail an, gib beide Calendar aus, oder deren getTime(), um zu sehen was sie genau darstellen,
berechne (event - heute.getTimeInMillis()) / 86400000.0, also eine Kommazahl, was kommt da raus was später auf 18 gerundet wird, 18.9 oder 18.1

statt
Calendar heute = new GregorianCalendar();
teste
Calendar heute = new GregorianCalendar(heutiges Jahr, heutiger Monat, heutiger Tag);
berechne davon die Differenz zu new GregorianCalendar()
usw.

das sind doch alles wichtige Informationen, wieso interessiert du dich nicht dafür sondern fragst einfach jemand anderen?
 

Woggle

Mitglied
:oops::oops::oops:

Tja. So schnell kanns gehen :D
Danke, nun stimmts :D

Hier mein endgültiger (funktionierender) Code:

Java:
					//Tag DIfferenz herausfinden
					Calendar dateDB = new GregorianCalendar();
					dateDB = new GregorianCalendar(rs.getInt("WannJahr"), rs.getInt("WannMonat")-1, rs.getInt("WannTag"));
					long event = dateDB.getTimeInMillis();
					
					Calendar heute = new GregorianCalendar();
					
					
					long ergebnis = (event - heute.getTimeInMillis()) / 86400000;

Vielen Dank nochmal!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Datum: Differenz in Tagen berechen Java Basics - Anfänger-Themen 3
I Differenz zwischen LocalDateTime Java Basics - Anfänger-Themen 4
Leo_1789 Differenz ausrechnen zwischen denn idealgewicht und denn echten Gewicht Java Basics - Anfänger-Themen 7
KogoroMori21 Java Datum Differenz (kleiner Fehler) Java Basics - Anfänger-Themen 10
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
J Java Datum- Zeit Differenz bilden! Java Basics - Anfänger-Themen 4
F Datum Differenz berechnen Java Basics - Anfänger-Themen 7
Z Differenz zwischen 2 Daten berechnen, ohne importiere Funktionen! Java Basics - Anfänger-Themen 10
T Programm, das die Differenz zweier Daten ausgibt Java Basics - Anfänger-Themen 4
B Differenz von 2 Datum Java Basics - Anfänger-Themen 8
L Date differenz Java Basics - Anfänger-Themen 6
C GregorianCalendar 2 Datumswerte(Differenz) auf volles Jahr prüfen Java Basics - Anfänger-Themen 4
C Differenz-Methode mit Array lösen Java Basics - Anfänger-Themen 14
L Datumsberechnung - Differenz von Monaten Java Basics - Anfänger-Themen 5
F java.sql.Date Differenz Java Basics - Anfänger-Themen 3
B Differenz zwischen zwei Datumswerten ermitteln Java Basics - Anfänger-Themen 2
G Differenz in Tage Java Basics - Anfänger-Themen 3
H Differenz zwischen Datum Java Basics - Anfänger-Themen 4
R Differenz Iterative Java Basics - Anfänger-Themen 14
T Differenz berechen Java Basics - Anfänger-Themen 14
B Liste von Tagen generieren ab einem bestimmten Datum und Endedatum Java Basics - Anfänger-Themen 4
X Input/Output Höchste Temperaturschwankung zwischen 2 Tagen Java Basics - Anfänger-Themen 2
S OOP Datumsunterschied in Tagen berechnen Java Basics - Anfänger-Themen 3
M Überschneidende Anzahl von Tagen Java Basics - Anfänger-Themen 4
T Prüfung in 2 Tagen Java Basics - Anfänger-Themen 4
A Datum zwischen zwei Daten berechnen und in Tagen anzeigen Java Basics - Anfänger-Themen 4
R Zeitspanne in Tagen berechnen Java Basics - Anfänger-Themen 3
F Datumsdifferenz in Tagen ermitteln Java Basics - Anfänger-Themen 8
S Java2 in 21 Tagen Java Basics - Anfänger-Themen 8
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
W Daten in Echtzeit übernehmen Java Basics - Anfänger-Themen 5
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
M Tabellen- Daten laden Java Basics - Anfänger-Themen 2
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A Literale für primitive Daten Typen Java Basics - Anfänger-Themen 4
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D Sportwetten Daten Atomatisch analysieren um optimale Strategie zu erhalten Java Basics - Anfänger-Themen 6
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
Shallty Daten speichern und ändern? Java Basics - Anfänger-Themen 32
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
A Minesweeper - Daten Java Basics - Anfänger-Themen 46
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
WPS1000 Input/Output Wie aktiviere ich den Daten Transfer von der RS232 in meine Java Applikation Java Basics - Anfänger-Themen 2
R Eigenes Protokoll zur Übermittlung von Daten zum Webserver? Java Basics - Anfänger-Themen 4
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
M jTabel mit Daten Füllen Java Basics - Anfänger-Themen 5
S Daten lesen und speichern Java Basics - Anfänger-Themen 26
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L Java Programm zum Auswerten von Daten Java Basics - Anfänger-Themen 11
H Passwortmanager, Sicherheit der Daten Java Basics - Anfänger-Themen 12
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
M Best Practice Daten-Import /Trabsfomration aus Textdatei Java Basics - Anfänger-Themen 12
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
M Erste Schritte Speichern von mehreren Daten Java Basics - Anfänger-Themen 3
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
F Daten von Thread an den aufrufenden zurückgeben Java Basics - Anfänger-Themen 22
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
D NPE beim laden von Daten aus MySQL Java Basics - Anfänger-Themen 9
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4
P Methoden ausgelesene (CSV-) Daten in Liste einer anderen Klasse einlesen Java Basics - Anfänger-Themen 0
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
F Http Post von mehreren Daten Java Basics - Anfänger-Themen 5
F Daten auf Webserver laden - wiederholen bei Fehler Java Basics - Anfänger-Themen 0
W Best Practice problemabhängige Persistentmachung von Daten Java Basics - Anfänger-Themen 6
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
N Daten/Formular per POST an Firefox/Browser senden Java Basics - Anfänger-Themen 7
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
T JTable Daten aus txt datei Java Basics - Anfänger-Themen 3
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
V Einlesen von Daten Java Basics - Anfänger-Themen 8
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 14
J Daten im Programm speichern Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben