Thema: Delphi StrToTime (38:30:00)

Einzelnen Beitrag anzeigen

Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#6

Re: StrToTime (38:30:00)

  Alt 24. Mär 2004, 11:00
Delphi-Quellcode:
function MyStrToTime(Value : String):TDatetime;
var MyDateTime : TDateTime
    Stunden
  , Minuten
  , Sekunden
  , MilliSekunden : WORD;
    LastPos
  , NextPos : Integer;
begin
  // Jede Annahme endet mit einer Katastrophe...
  try
    NextPos := pos(':',Value);
    Stunden := StrToInt(copy(Value,1,NextPos-1));
    LastPos := NextPos+1;
    NextPos := pos(':',copy(Value,LastPos,MaxInt));
    Minuten := StrToInt(copy(Value,LastPos,NextPos-1));
    LastPos := LastPos+NextPos+1;
    NextPos := pos('.',copy(Value,LastPos,MaxInt));
    if NextPos > 0 then begin
      Sekunden := StrToInt(copy(Value,LastPos,NextPos-1));
      MilliSek := StrToInt(copy(Value,NextPos+1,MaxInt));
    end else begin
      Sekunden := StrToInt(copy(Value,LastPos,MaxInt));
      MilliSek := 0;
    end;
    Result := Stunden div 24;
    Stunden = Stunden mod 24;
    EncodeTime(MyDatetime,Stunden,Minuten,Sekunden,MilliSek);
    Result := Result+MyDateTime;
  except
    raise Exception.Create('Der übergebene String ist faul!');
  end
end;
Verwendung:
Delphi-Quellcode:
var DeinZiel : TDatetime;
begin
  DeinZiel := MyStrToTime('38:25:59.999');
end;
nu is aba gut oder?
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat