AW: TimeStr im Format 'hh:mm:ss' in DateTime
Warum ist im DateFormat ein Time-String drin?
Sei froh, dass Delphi beim Encodieren von Datums-/Zeitwerten so schrottig arbeitet, sonst hätte es dir diesen "kaputten" Datums-String um die Ohren geworfen. Zitat:
Delphi-Quellcode:
Sinnlose Kommentare, ala
If (InStr[i] >= '0') and (InStr[i] <= '9') then
If CharInSet(InStr[i], ['0'..'9']) then //If InStr[i] in ['0'..'9'] then
Delphi-Quellcode:
, könnte man sich dann auch sparen. :zwinker:
// Zahlenbereiche auf Ziffern prüfen
Zitat:
Delphi-Quellcode:
:roll:
FormatDateTime('dd.mm.yyyy ', now)
Zitat:
Delphi-Quellcode:
Für sowas sollten Leute gesteinigt werden.
except
end; Kurz gefasst macht deine Funktion ausschließlich das:
Delphi-Quellcode:
function TimeStrToDateTime(InStr: String): TDateTime;
var i: Integer; fs: TFormatSettings; begin for i := Length(InStr) downto 1 do if not CharInSet(InStr[i], ['0'..'9']) then InStr[i] := ':'; fs.TimeSeparator := ':'; //fs.ShortTimeFormat := 'hh:nn:ss'; // das ist sowieso egal, da die Delphi-Date/Time-Decodierungsfunktionen die Formatstrings fahrlässig ignorieren // und nur die richtigen Separatoren, sowie TimeAMString und TimePMString beachten //try Result := DateOf(Now) + StrToTime(Instr, fs); //except // Result := 666.000001; // ein unverständlicher krumer Wert ... warum nicht einfach 0? //end; end;
Delphi-Quellcode:
= Date, aber jeder nutzt lieber Now.
DateOf(Now)
Und in Wirklichkeit wolltest du wohl nur sowas machen?
Delphi-Quellcode:
Wer "Dreck" eingibt, also z.B. irgendwelche falsche Zeichen/Buchstaben, der hat gefälligst mit der passenden Fehlermeldung zu rechnen, wo ihm gesagt wird, dass er Mist gebaut hat.
function TimeStrToDateTime(InStr: String): TDateTime;
var fs: TFormatSettings; begin fs.TimeSeparator := ':'; InStr := ReplaceString(InStr, ' ', ''); // inkl. Trim InStr := ReplaceString(InStr, '/', ':'); // ein anderer bekannter TimeSeparator InStr := ReplaceString(InStr, '-', ':'); // ... Result := DateOf(Now) + StrToTime(Instr, fs); end; |
AW: Datumskonvertierung
Reicht nicht eigentlich auch einfach nur ...
Delphi-Quellcode:
?
StrToDateTime()
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:10 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