German Datum/Zeit auf Plausibilität prüfen

mw71

Active Member
Licensed User
Longtime User
Moin,

normalerweise gibt bei mir die App Datum und Uhrzeit vor. Nun kann es sein das der Nutzer die Daten nachträglich einträgt und somit Datum und/oder Uhrzeit ändert.
Im Moment kann dort auf falsche Daten eingetragen werden (z.B. durch Tippfehler....)

Gibt es eine Fertige oder einfache Möglichkeit die Daten auf Plausibilität zu prüfen??
Bin für jeden Tipp dankbar :)

Grüße & Danke
 

RauchG

Active Member
Licensed User
Longtime User
Z.B.: Das Datumsfeld oder Zeitfeld auf ReadOnly setzen und daneben einen Button, mit dem der User Datum oder Zeit auswählen kann.

Gruß
RauchG
 

Alexander Stolte

Expert
Licensed User
Longtime User
Oder du holst dir die Aktuelle Uhrzeit aus dem Internet und vergleichst diese mit einer Toleranz von max. 2 Minuten. Wenn das geht natürlich, ich weiß ja nicht ob die aktuelle Zeit benötigt wird.
 

mw71

Active Member
Licensed User
Longtime User
Moin,

danke für eure Ideen.
- über ein Date/Time Picker hatte ich auch schon mal nachgedacht, aber wieder verworfen da das mir zu langsam/umständlich ist.
Ich habe mir dann über das Change Event geholfen, das mach das eintragen zumindest etwas besser.
- normalerweise nimmt er die aktuelle Uhrzeit vom System (wird über Timer aktualisiert), das ist ausreichend genau.
Man kann das aber ausschalten und die Uhrzeit/das Datum manuell eintragen um Daten nachträglich einzugeben. Da kann es
dann aber sein das man (unbewusst) falsche Daten eingibt, was unschön ist.

Im Moment behelfe ich mir so das ich u.a. die Länge des Strings prüfe (Uhrzeit muss ja z.B. 5 Zeichen lang sein) und diesen
anschließend zerlege (Regex.Split) und ein, zwei weitere Prüfungen mache....ist nicht unbedingt sehr elegant o_O.

Grüße
 

KMatle

Expert
Licensed User
Longtime User
Ich baue mir für solche Zwecke gerne ein Panel mit ein paar labels für die Ziffern 0 - 9 plus ein weiteres für die Uhrzeit als Text. Das Panel kann man auch aufhübschen, wenn man unbedingt eine tolle Optik benötigt (ähnlich Googles Eingabe für Termine).

Am Anfang ist das Urhzeitfeld dann leer und der User fängt an zu tippen. Nach zwei Ziffern hänge ich den Doppelpunkt automatisch an und erwarte dann zwei weitere Ziffern. Bei jedem Tippen prüfe ich die Plausibilität (z.B. darf die erste Ziffer nicht größer 2, die 3. nicht größer 3 (für max. 23 Uhr) sein usw. Entweder wird dann die Ziffer übernommen oder wg. Plausibilität nicht. Ist die Uhrzeit komplett eingegeben und der User tippt weiter, wird das Feld gelöscht. Somit sind sehr schnelle Eingaben möglich.

Gleiches kann man auch für das Datum machen. Wenn der User dann auf OK klickt, checke ich beide Begriffe mit DateTime.DateTimeParse (Try.... Catch... darumbauen). Wird keine Exception geworfen, dann stimme Uhrzeit & Datum. Wenn nicht, dann war die Eingabe fehlerhaft (z.B. 29.2.2017).
 
Top