Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi String auf Zeit prüfen (https://www.delphipraxis.net/61076-string-auf-zeit-pruefen.html)

Helmi 16. Jan 2006 19:57


String auf Zeit prüfen
 
Hallo,

ich habe einen String der wie folgt ausschaut: xx:xx:xx.
Das x steht für eine Zahl zwischen 0 - 9.

Jetzt möchte ich diesen String prüfen, ob Dieser eine aktuelle Zeit beinhaltet.
Also hh:mm:ss (h = Stunde, m = Minute, s = Sekunde).

Sollte dies keine gültige Zeit sein (z. B. bei 99:99:99), dann soll daraus automatisch 23:59:59 werden.

Ich hab das schon mal mit StrToTime probiert, aber diese function erlaubt, laut OH, nur zweistelle Uhrzeiten.

Weiss jemand, wie ich das machen könnte?

Bernhard Geyer 16. Jan 2006 20:14

Re: String auf Zeit prüfen
 
Zitat:

Zitat von Helmi
Ich hab das schon mal mit StrToTime probiert, aber diese function erlaubt, laut OH, nur zweistelle Uhrzeiten.

Komisch, bei mir erlaubt StrToTime 2 oder 3stellige Uhrzeiten (D6)

Delphi-Quellcode:
try
  MyTime := StrToTime(MyTimeAsString);
except
  MyTime := StrToTime('23:59:59');
end;

Helmi 16. Jan 2006 20:19

Re: String auf Zeit prüfen
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

Zitat von Helmi
Ich hab das schon mal mit StrToTime probiert, aber diese function erlaubt, laut OH, nur zweistelle Uhrzeiten.

Komisch, bei mir erlaubt StrToTime 2 oder 3stellige Uhrzeiten (D6)

Delphi-Quellcode:
try
  MyTime := StrToTime(MyTimeAsString);
except
  MyTime := StrToTime('23:59:59');
end;

Ja, du hast recht!
Als ich das getestet habe, hatte ich einen Fehler im String deswegen konnte der das nicht in eine Zeit ändern!

Es geht auch mit 3 stelliger Uhrzeit!

Trotzdem Danke!

Amateurprofi 16. Jan 2006 20:21

Re: String auf Zeit prüfen
 
Zitat:

Zitat von Helmi
Jetzt möchte ich diesen String prüfen, ob Dieser eine aktuelle Zeit beinhaltet.
Also hh:mm:ss (h = Stunde, m = Minute, s = Sekunde).
Sollte dies keine gültige Zeit sein (z. B. bei 99:99:99), dann soll daraus automatisch 23:59:59 werden.
Weiss jemand, wie ich das machen könnte?

Indem Du prüfst
  • ob an der dritten und sechsten Position Doppelpunkte stehen.
  • ob die Ziffern an den Positionen eins und zwei eine Zahl im Bereich 0 bis 23 ergeben.
  • ob die Ziffern an den Positionen vier und fünf eine Zahl im Bereich 0 bis 59 ergeben.
  • ob die Ziffern an den Positionen sieben und acht eine Zahl im Bereich 0 bis 59 ergeben.
Wenn alle Prüfungen positiv verlaufen, dann ist es eine gültige Zeit, sonst gibst Du als Resultat der Prüfung '23:59:59' zurück.

marabu 16. Jan 2006 20:22

Re: String auf Zeit prüfen
 
Oder man verlässt sich auf innere Heilungskräfte:

Delphi-Quellcode:
function CheckTime(const sTime: String): String;
var
  dtTest: TDateTime;
begin
  if TryStrToTime(sTime, dtTest)
    then Result := TimeToStr(dtTest)
    else Result := '23:59:59';
end;
Grüße vom marabu

Helmi 16. Jan 2006 20:25

Re: String auf Zeit prüfen
 
Es kann sein, dass mein String eine Zeichenfolge wie diese hat: 00:00:04.

Dann bekomm ich leider immer nur die 23:59:59 zurück.

marabu 16. Jan 2006 20:27

Re: String auf Zeit prüfen
 
Ich nicht - Gott sei Dank.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz