Bitte helfen: Datum vergleichen?

Status
Nicht offen für weitere Antworten.

Schumi_86

Mitglied
Hallo,

ich hoffe mir kann jemand helfen. Drehe nämlich langsam durch. Also: Ich habe 2 Datums, Datümer, Daten wie auch immer das heißen mag. Diese will ich miteinander vergleichen. Das eine Datum hole ich mir als String aus einer Datei in der Form "20080315" (Also z.B. 15.3.2008). Das andere Datum soll das aktuelle sein. Jetzt möchte ich diese beiden so miteinander vergleichen, um dann zu wissen ob zwischen dem alten und dem aktuellen Datum mehr als 7 tage liegen. Ich bekomme es aber einfach nicht hin :(

Mein Code etwas vereinfacht:

Code:
	    Calendar heute = new GregorianCalendar();
	    
                    // Beispielhaft mal irgendein vergangenes Datum
	    String lastUpdate = "20080315"

	    int day = Integer.parseInt(lastUpdate.substring(6, 8));
	    int month = Integer.parseInt(lastUpdate.substring(4, 6));
	    int year = Integer.parseInt(lastUpdate.substring(0, 4));
	            
	    Calendar neulich = new GregorianCalendar(day, month, year, 0,0,0);
	    neulich.add(Calendar.DAY_OF_MONTH, 7); 

                    if (neulich.after(heute)){
	        return false;
	    }

bin ich da auf dem richtigen Weg. Bekomme egal ob, der zeitraum größer oder kleiner als 7 tage ist einfach immer das selbe ergebnis :bahnhof:
 
S

SlaterB

Gast
schau dir doch mal den Konstruktor von GregorianCalendar an,
ob 2008 das Jahr oder der Tag ist, macht durchaus einen Unterschied ;)

überprüfe deine Berechnungen, indem du überall System.out.println() hinschreibst (oder Debugger)

-------

etwas einfacherer:

String lastUpdate = "20080315";
SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");
Date date = f.parse(lastUpdate);
System.out.println(date);
 

Schumi_86

Mitglied
Hallo,

Vielen dank erstmal für deine Hilfe und deine guten Tipps. Habe jetzt weiter mal ein wenig rumprobiert und einiges abgeändert. Damit läuft es somit jetzt auch erstmal:

Code:
    Calendar heute = new GregorianCalendar(); 
       
    // Beispielhaft mal irgendein vergangenes Datum 
    String lastUpdate = "20080315" 

    int day = Integer.parseInt(lastUpdate.substring(6, 8)); 
    int month = Integer.parseInt(lastUpdate.substring(4, 6)); 
    int year = Integer.parseInt(lastUpdate.substring(0, 4)); 
               
    Calendar neulich = new GregorianCalendar(year, month-1, day, 0,0,0); 
    neulich.add(Calendar.DAY_OF_MONTH, 7); 

    if (neulich.after(heute)){ 
        return false; 
    }

Mich wundert es aber warum ich bei dem monat eins abziehen muss. in der int variable month steckt eine 3. Wenn ich die -1 aber weglasse, dann bekomme ich den vierten Monat? kann ich das mit minus eins so machen, oder könnte es dadurch später zu Problemen kommen?

etwas einfacherer:

String lastUpdate = "20080315";
SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");
Date date = f.parse(lastUpdate);

Damit habe ich auch schon ein wenig rumprobiert. Habe es aber nicht hinbekommen bei dem Datum sieben Tage drauf zu rechnen. Gibt es da auch eine Möglichkeit?
 
S

SlaterB

Gast
> Habe es aber nicht hinbekommen bei dem Datum sieben Tage drauf zu rechnen.
das Date musst du auch in einen Calendar stecken + dort rechnen,
da gibts dann aber ne einfache set-Operation, besser als mit Monaten zu hantieren

das mit den Monaten siehst du so richtig, nix schöner zu machen, soweit ich weiß,
Monat wird intern als 0-11 abgespeichert, vielleicht aus irgendwelchen historischen Gründen,
auf jeden Fall günstig, wenn man ein Array für die 12 Monate als String hat,
dann muss man dort nicht mehr -1 rechnen ;)
 

schalentier

Gesperrter Benutzer
Jo, beim GregorianCalendar musste 1 vom Monat abziehen. Darueber hab ich mich schon SEHR oft aufgeregt ;-)

Wenn du dir diesen ganzen komischen Mist sparen willst, nimm Joda Time.

Code:
DateMidnight date = new DateMidnight( 2008, 3, 15 );
DateMidnight today = new DateMidnight();

int days = Days.daysBetween( date, today ).getDays();
 

Schumi_86

Mitglied
das Date musst du auch in einen Calendar stecken + dort rechnen,
da gibts dann aber ne einfache set-Operation, besser als mit Monaten zu hantieren

Habs damit jetzt auch hinbekommen :D

Code:
	    SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");      
	    Date date = f.parse(lastUpdate); 

	    GregorianCalendar neulich = new GregorianCalendar();
	    neulich.setTime(date);
	    neulich.add(Calendar.DAY_OF_MONTH, 7);


Vielen Dank nochmal für eure super Hilfe!
 

schalentier

Gesperrter Benutzer
Sag was du willst, ich bleibe dabei und finde die kompletten Datum-Sachen in Java von Sun sind einfach voellig vermurkst. Wenn man einen Monat mit Zahlen zwischen 0 und 11 angeben muss, ist das einfach nur extrem strange (Vom Sinn und Zweck des GregorianCalendar fang ich jetzt mal gar nicht an zu schreiben).

Noch schlimmer als einem Java Beginner zu erklaeren, warum:
Code:
double foo = 5/12;
System.out.println(foo);
0.0 ergibt. :autsch:

Aber wie gesagt, Joda Time hilft (jedenfalls beim Kalender). Irgendwo meine ich auch gelesen zu haben, das Joda evtl. vllt. mal ins JDK reinrutscht... *freu*.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Erste Schritte Bitte helfen sie mir diese Programm zu schreiben Java Basics - Anfänger-Themen 12
A GUI- Allgemeines Problem (Bitte helfen) Java Basics - Anfänger-Themen 15
U Bitte Helfen kleines Spiel Java Basics - Anfänger-Themen 9
J Datentypen Generics - Bitte helfen !! Java Basics - Anfänger-Themen 9
K 50 errormeldungen- komme auch nach vielen Nachmittagen nicht weiter. bitte helfen Java Basics - Anfänger-Themen 39
D Ausgabe in Datei ( bitte helfen ) Java Basics - Anfänger-Themen 13
K Hilfe beim starten eines Programms! Bitte helfen. Java Basics - Anfänger-Themen 8
M Methoden. ich versteh das einfach nicht! Bitte helfen! Java Basics - Anfänger-Themen 4
A Starthilfe für Java. Bitte helfen :-( Java Basics - Anfänger-Themen 13
N Kann mir bitte jemand helfen? Java Basics - Anfänger-Themen 6
A Java Versionsproblem? Bitte helfen! Java Basics - Anfänger-Themen 4
ineedhelpinjava OOP Bitte wichtig Java Basics - Anfänger-Themen 6
G Bitte meinen Account löschen Java Basics - Anfänger-Themen 1
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
Vivien Bitte um Optimierungsvorschläge / Verbesserungsvorschläge / allgemeines Feedback Java Basics - Anfänger-Themen 8
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15
J Java List, bitte um Hilfe Java Basics - Anfänger-Themen 3
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
ZH1896ZH OOP Verstehe nicht was der Hinweis bedeutet, bitte um Hilfe! Java Basics - Anfänger-Themen 2
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
S Bitte Hilfe zu Fehlermeldung am Handy Java Basics - Anfänger-Themen 2
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
P Bitte Hinweise zu folgendem "Klassenproblem" Java Basics - Anfänger-Themen 3
M Bitte um Hilfe bei Quellcode (Rekursion) Java Basics - Anfänger-Themen 6
C Stack und Queue in Aktion (Bitte Hilfe für die Klausur) Java Basics - Anfänger-Themen 7
F (Eclipse) Beim importieren etwas fehlerhaft bitte um Hilfe :) Java Basics - Anfänger-Themen 3
B MVC Struktur mit mehreren Szenen - wer schaut mal bitte drüber? Java Basics - Anfänger-Themen 2
T Bitte um Hilfe Java Basics - Anfänger-Themen 9
D Arraylisten sortieren bitte um Hilfe Java Basics - Anfänger-Themen 4
P Erste Schritte Bitte ein paar Erklärungen zu meinem Code Java Basics - Anfänger-Themen 6
J Bitte Hilfe Java Basics - Anfänger-Themen 4
W FileReader - Bitte um Erklärung Java Basics - Anfänger-Themen 7
V Memory Logik Problem/Denkblockade, bitte helft Java Basics - Anfänger-Themen 1
T Bitte um Hilfe bei Aufgabe: Long zahl = Long.parseLong(args [0]); Java Basics - Anfänger-Themen 3
J Bitte um Erklärung Java Basics - Anfänger-Themen 4
D Bitte um Hilfe bei "error: package com.apple.eawt does not exist import com.apple.eawt.*;" Java Basics - Anfänger-Themen 1
C Polymorphie - Erklärung bitte Java Basics - Anfänger-Themen 5
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
F Bitte mal Zusammenhänge der Klassen erklären Java Basics - Anfänger-Themen 8
P <identifier> expected Fehler bitte um Hilfe Java Basics - Anfänger-Themen 5
J Kann mir bitte mal jemand diese Codes erklären? Java Basics - Anfänger-Themen 19
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
O Rundungsfehler bitte erklären! Java Basics - Anfänger-Themen 4
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
M Erklärung Code Mergesort Bitte Java Basics - Anfänger-Themen 3
N While Schleife Erklärung Bitte Java Basics - Anfänger-Themen 3
S Variablen Hilfe bitte Java Basics - Anfänger-Themen 6
Z Erste Schritte Bitte helft mir dringend!! Java Basics - Anfänger-Themen 3
T Unit tests fehlerhaft bitte um hiiiiilfe :D Java Basics - Anfänger-Themen 1
J Ich bitte DRINGEND um Hilfe!!! Java Basics - Anfänger-Themen 16
Q Importieren meiner Boundary? Bitte Hilfe Java Basics - Anfänger-Themen 3
T Eine kurze frage vor der prüfung bitte. Java Basics - Anfänger-Themen 5
CyberFish initialisieren, obwohl es gemacht wurde! Bitte um Hilfe Java Basics - Anfänger-Themen 10
H Bitte um Hilfe von Profis. Java Basics - Anfänger-Themen 5
S Klassen Formel zur Berechnung .... Bitte um Hilfe Java Basics - Anfänger-Themen 7
H Methoden Bitte um Erklärung der askString-Methode Java Basics - Anfänger-Themen 15
J Probleme bei kompilieren ... Bitte um Hilfe Java Basics - Anfänger-Themen 27
O Erste Schritte Aller Anfang ist schwer ! Bitte um Unterstützung Java Basics - Anfänger-Themen 6
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
P Bitte um hilfe bei einfachem Rechner Java Basics - Anfänger-Themen 7
B Bitte Hilfe für Funktionalität eines Sudokus Java Basics - Anfänger-Themen 8
G Brauche bitte Hilfe, bei umgekehrter Ausgabe!! Java Basics - Anfänger-Themen 6
G Input/Output FilenameFilter aber bitte keine Unterordner Java Basics - Anfänger-Themen 5
J Vererbung Anfänger Programm bitte um Kritik&Anregungen Java Basics - Anfänger-Themen 21
N Bitte Java Basics - Anfänger-Themen 2
D ???:L Bitte einmal mit drüber nachdenken Java Basics - Anfänger-Themen 5
eLogic DownloadManager - Bitte helft mir Java Basics - Anfänger-Themen 7
R Vererbung Bitte um Erklärung - Instanzvariablen Java Basics - Anfänger-Themen 8
U finde fehler nicht! bitte um hilfe Java Basics - Anfänger-Themen 8
M Problem: code too large - bitte um Hilfe Java Basics - Anfänger-Themen 12
B Java und Javac funktionieren nicht - bitte hilfe Java Basics - Anfänger-Themen 5
P Bitte helft mir Java Basics - Anfänger-Themen 3
3 Bitte um Hilfe bei Lösung einer Aufgabe Java Basics - Anfänger-Themen 16
M Aus CSV-Datei lesen und anzeigen (bitte schnell um Antwort) Java Basics - Anfänger-Themen 6
R Jave Problem... bitte um Hilfe!! Java Basics - Anfänger-Themen 6
S Java problem, bitte um hilfe! Java Basics - Anfänger-Themen 9
B Bitte um Hilfe es geht um Array + Punkte wie Dreieck,Fläche etc. Java Basics - Anfänger-Themen 12
C Bitte kurzes Feedback - JavaVersionen Java Basics - Anfänger-Themen 6
M Bitte um Verbesserungsvorschläge Java Basics - Anfänger-Themen 14
N verständniss problem bitte um hilfe Java Basics - Anfänger-Themen 3
L Brauche bitte dringend Hilfe für Klausur Java Basics - Anfänger-Themen 8
B Monat und Jahr bitte um Hilfe Java Basics - Anfänger-Themen 8
T Java Beispiel Bitte helft mir Java Basics - Anfänger-Themen 5
A Dringende Bitte um Erklärungen zum besseren Verständnis Java Basics - Anfänger-Themen 4
D Java Problem bitte um hilfe Java Basics - Anfänger-Themen 4
S Datei-KopierProgramm ? CODE BITTE VERBESSERN Java Basics - Anfänger-Themen 11
D code erklären bitte ! Java Basics - Anfänger-Themen 15
Rudolf Verstehe das Ergebnis nicht - bitte erklären Java Basics - Anfänger-Themen 7
M Kann mir bitte jemand "java.util.ArrayList" erklären? Java Basics - Anfänger-Themen 5
M Bitte um Kontrolle meines Quelltextes Java Basics - Anfänger-Themen 10
J Leichte Java Anfängerfrage. Bitte schnelle Antwort. :) Java Basics - Anfänger-Themen 10
S BITTE UM HILFE: Unterschied Deklaration und Signatur einer Methode Java Basics - Anfänger-Themen 3
S BITTE UM HILFE HASHTABLE/import java.util.Hashtable in Ecplipse Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben