'Date' -Editorfelder vergleichen

ennbee

Grünschnabel
Hi Forumer...

suche Java-Code zum vergleichen zweier Datumsfelder, sprich: 'gültigseit' darf keinen höheres Datumseintrag haben als 'gültigbis' ... sicherlich gibt es da was, ich hab's aber bisher nicht finden können :(

Hat einer von euch 'nen Tipp oder Link? Hier mal ein wenig Code ...

Code:
	    public EditField[] getEditFields() {
            // TODO NB Wert-Feld je Datentyp konfigurieren

	    	EditField[] fields = new EditField[] {

                 ...

                new EditField("gueltigseit", "Gültig seit",
                        EditField.FORMENTRY_TYPE_TEXT, new KalenderAuswahlHilfe(),
                        new DateValidator(), false, true),
                        
                new EditField("gueltigbis", "Gültig bis",
                        EditField.FORMENTRY_TYPE_TEXT, new KalenderAuswahlHilfe(),
                        new DateValidator(), false, true),

                ...

        };
	    	return fields;
	    }

Nochmal: bevor dieser Eintrag gespeichert wird, soll kontrolliert werden
- gültiges Datum?
- gültigseit nicht größer als gültigbis?

Bin dankbar für jedwede(n) Hilfe oder Hinweis

Gruß
Nicole
 
moin!
Wie liegen die Datumsangaben den vor?
Falls es Date Objecte sind, kann man sie einfach mit compareTo vergleichen...
Falls du ein String hast, kannst du ihn eventuell mit DateFormat.parseString() in ein DateObject umwandlen.
*grüssle*
MeinerEiner
 
Zuletzt bearbeitet von einem Moderator:
Hmmm, bin überfragt... guck mal:

Code:
    public String validate(String textValue) {
        if (textValue == null) return null;
        if (textValue.trim().length() == 0) return null;
        Date date = Converter.convertStringToDate(textValue);
        if (date == null) {
           date = new Date();
           
           return "Der Eingabwert entspricht nicht dem Format '" + Converter.convertDateToLocalString(new Date()) + "'.";
           
        } else { 
           return null;
        }
    }

Date Object benutzt in String...?
 
Kurze Frage, ist das denn dein Quelltext.. weil du dich so wenig damit auskennst?

Was macht denn diese validate Methode? sie liefert enweder ein null zurück, wenn die Eingabe falsch war bzw, einen Fehlertext, oder null wenn die Texteingabe korrekt war.
Frage? Wie soll da der Aufrufer der Methode merken, ob die Eingabe nun korrekt war?
Ich würde die validate Methode ein boolean true zurückgeben lassen, wenn alles okay war, sonst false;

Desweiteren fehlt ein mir bisschen der Zusammenhang, wo hier was passiert, aber in dieser validate methode wird ja wohl ein Date Object erzeugt aus dem Eingabestring, um zu überprüfen, ob die Eingabe okay war.

Ich würde folgendes machen, wenn das Date Object gültigseit korrekt ist,speichere es.
Wenn die Texteingabe gültigbis überprüft wird, vergleiche es mit dem gültigseit Object.

Mehr kann ich dir nun nicht helfen, da weder Converter noch das EditField Klassen aus der Java Standard API sind...

*grüssle*
MeinerEiner
 
Zuletzt bearbeitet von einem Moderator:
Danke soweit...

Nicht alles ist mein Quelltext, aber einlesen soll ich mich .. bin Beginner und drücke mich daher wohl fachchinesisch unverständlich aus... und versteh nicht mal die Hälfte... allerdings gibst du dir wirklich Mühe, mir das zu erklären Danke :)

Mal schauen, wie ich weiterkomme ;)
 
Hallo Nicole,

würde dir empfehlen das Kapitel 10. (Raum und Zeit) aus der Java Insel zu lesen:
http://www.galileocomputing.de/openbook/javainsel5/

Nach dem du dir einen ungefähren Überblick geschaffen hast, wirst du bspw. merken das du Datum1 kleiner Datum2 garnicht selbst implementieren musst. Denn die Klasse Date hat schon die Methoden before() und after().

Als nächstes sollte man die Javaapi durchchecken:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html

Hier sind sämtliche Konstruktoren und Methoden von Date aufgelistet.

Zusätzlich könntest du dir auch mal Codesnippets (Codebeispiele) bei Javaalmanac zu Date anschauen:
http://javaalmanac.com/egs/java.util/pkg.html#Dates

Wenns dann noch irgendwo hakt einfach nochmal schreiben :) .


Vg Erdal
 
Zurück