Hallo,
er wollte genau das Gegenteil String -> DateTime.
Übrigens kann DecodeTime auch nur Stunden bis 24.
Folgende Funktion hatte ich mir mal geschrieben.
Aber bitte nicht meckern, is elend lange her
Delphi-Quellcode:
function StrToTime_hhhmm(theTimeStr:
String;
var theDateTime: TDateTime): Boolean;
var
Counter : Integer;
Hours : Integer;
ResultTime: TDateTime;
bMinus : Boolean;
begin
Result := False;
theDateTime := 0.0;
bMinus := False;
try
ResultTime:= 0.0;
if Pos('
-', theTimeStr)=1
then
begin
Delete(theTimeStr,1,1);
bMinus:= True;
end;
{-- Die Stunden extrahieren--}
{erstes Auftreten von : suchen}
Counter:= Pos('
:', theTimeStr)-1;
{Stunden extrahieren }
if Counter=-1
then
begin
Hours := StrToInt(theTimeStr);
theTimeStr:= '
';
end
else
begin
Hours := StrToInt(Copy(theTimeStr, 1, Counter));
Delete(theTimeStr, 1, Counter);
{Löscht hhh}
end;
{Stunden zu ResultTime addieren }
while Hours >= 24
do
begin
ResultTime := ResultTime+1;
Hours := Hours-24;
end;
{Stunden <24 zurückschreiben}
if theTimeStr='
'
then
begin
theTimeStr := IntToStr(Hours)+'
:00';
end
else
begin
theTimeStr := IntToStr(Hours)+theTimeStr;
end;
{RestString in DateTime umformen}
ResultTime := ResultTime + StrToTime(theTimeStr);
theDateTime:= ResultTime;
if bMinus
then theDateTime:= -theDateTime;
Result:= True;
except
on Exception do;
end;
end;
{ StrToTime_hhhmm }
Heiko
[edit=sakura] [delphi]-Tags Mfg, sakura[/edit]