function IsTime(AString: string; ADelimiter: Char): Boolean;
function IsValid(S: string; I: Integer): Boolean;
begin
case I of
1: Result := StrToInt(S) in [0..24];
2, 3: Result := StrToInt(S) in [0..59];
else
Result := False;
end; //end case
end;
var
P, Start: PChar;
Str: string;
Count: Integer;
begin
Result := False;
//嘿嘿,最大长度和最小长度的区别。按照549的题意字符串长度一定在6~9
if (not (Length(AString) in [6..8])) or (AString = '') then Exit;
P := Pointer(AString);
Count := 1;
while (P^ <> #0) do
begin
if (Count > 3) then Exit;
Start := P;
while not (P^ in [#0, ADelimiter]) do Inc(P);
SetString(Str, Start, P - Start);
if (not IsValid(Str, Count)) then Exit;
if (P^ = ADelimiter) then Inc(P);
Inc(Count);
end;
Result := True;
end;
判断一个字符串是否是时间表达式(DELPHI)
最新推荐文章于 2023-04-03 18:03:46 发布