Textfeld für Datum...

Also ich muss doch noch einmal nachfragen, ob nicht jemand eine Idee/Lösung hat, wie ich jetzt am besten weitermache um die Abfrage zu erstellen, ob die Ziffern auch bei tag, z.b nur bis 31 gehen...
 
Hallo

@kleiner_floh
Das ist jetzt nicht böse gemeint, aber du stellst dich echt ein bischen Dumm an. zeja hat dir schon gesagt, was du machen musst, du hast den Code ja sogar schon da, du musst den nur noch umbauen, dass er alle Zeichen prüft und nicht nur die erste Stelle. Das hat nur noch was mit Logik und nichts mehr mit Java zu tun.

Ein anderer Vorschlag wäre noch, wenn du dir immer den kompletten String geben lässt. Mit deinString.split(".") den String teilst und jeden Teil vom String-Array, welches du bei split zurück bekommst auf die entsprechende Größe prüfst.

Also in Worte gefasst:

Ist der erste Teil des Arrays zwischen 1 und 31.
Ist der zweite Teil zwischen 1 und 12.
Ist der dritte Teil zwischen 2000 und 2099 oder so.


Natürlich musst du drauf achten, dass es ja noch möglich ist, dass du noch nicht alles eingegeben hast.
Ich hoffe das hilft dir mal weiter.

MFG

zEriX
 
Also, ja ich weiß das ich mich dumm anstelle, aber ich bin nunmal Javaanfänger und habe es nunmal noch nicht so drauf, wo ich alles wie deklarieren muss. Dennoch wollte ich versuchen diese Aufgabe zu lösen, wenn zwar auch mit Hilfe, aber immer zu sagen, mach das doch mal selber, und man probiert und probiert doch die ganze Zeit, ist irgendwann doch ganz schön deprimierend.

Und ja, zeja hat mir einiges an Code gegeben, dennoch weiß ich einfach nicht, wie ich den Rest umsetzen soll.
 
Naja, das hat nichts mit Javaanfänger zu tun. Das was ich dir versucht hab zu erklären ist reine Logik. Ich hab dir gesagt wie du einen String aufteilst. Mit einem Array solltest du in jeder Programmiersprache umgehen könnnen. Das ist nicht wirklich schwer. Wenn du es nicht weißt, empfehle ich dir zu googlen, weil du es so besser lernst, als wenn ich es dir sage.
Wenn du einen String geteilt hast, hast du im besten Fall 3 Strings. Die musst du dann in Integer umwandeln. Wie das geht weißt du auch schon und wie man Zahlen miteinander vergleicht weißt du auch schon. Das ist alles, mehr musst du nicht wissen. Damit kannst du das alles umsetzen.

MFG

zEriX
 
So danke nochmal, habe es jetzt doch selbstständig hinbekommen, nur anders (ich finde einfacher und kürzer :D) hinbekommen.

Aber vielen Dank für eure Unterstützung

text.addVerifyListener(new VerifyListener() {
public void verifyText(VerifyEvent event) {
String str = ((Text) event.widget).getText();
DateFormat format = DateFormat
.getDateInstance(DateFormat.MEDIUM);
if (str.length() == 9) {
Date myDate = null;
try {
myDate = format.parse(str);
} catch (ParseException e) {
System.out.println("Invalid Date Parser Exception");
e.printStackTrace();
}
if (!format.format(myDate).equals(str)) {
MessageBox messageBox = new MessageBox(shell, SWT.OK
| SWT.ICON_WARNING);
messageBox.setMessage("Ungültiges Datum!");
messageBox.open();
}
}

if (Character.isIdentifierIgnorable(event.character)) {
return;
}
if (!Character.isDigit(event.character)) {
event.doit = false;
return;
}
if (event.start == 1 || event.start == 4) {
event.text += ".";
event.start += 1;
event.end += 1;
}
}
});
 

Neue Beiträge

Zurück