判断一个字符串是否是时间表达式(DELPHI)

来源:互联网 发布:mac文件路径 编辑:程序博客网 时间:2024/05/21 05:24
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;