Zitat:
Ich wandle, anders als du, Int64 nicht unnötigerweise in Integer um und lese Compilermeldungen.
Ich möchte hier gerne eine friedliche Diskussion führen. Was du hier machst, ist genau das Gegenteil.
Wer bitte sagt denn, dass ich keine Compilermeldungen lese? Wer bitte sagt, dass ich Int64 in Integer umwandle?
Du selbst:
Delphi-Quellcode:
function ChangeTime(DateTime: TDateTime; const NewTime: Integer): Integer;
var
aNewTime: TDateTime;
begin
if (NewTime >= 86400) or (NewTime <= 0) then // Sicherheitshalber denn sonst gäbe es gar keine Zeitangabe!
aNewTime := StrToTime('00:00:00')
else
aNewTime := SecondsToDateTime(NewTime);
// bis hier hin ist es noch 23:59:59
DateTime := RecodeTime(DateTime, System.DateUtils.HourOf(aNewTime), System.DateUtils.MinuteOf(aNewTime), System.DateUtils.SecondOf(aNewTime), 000);
Result := DateTimeToUnix(DateTime);
ShowMessage(DateTimeToStr(UnixToDateTime(Result)) + sLineBreak + NewTime.ToString); // Resultat 23:59:58
end;
Der Compiler wird sich darüber beschweren, dass hier eine implizierte Typumwandlung mit Datenverlust auftritt, weil du grundlos Int64 in Integer umwandelst.
Jetzt bitte etwas zum Thema Mister Neunmalklug oder raus hier.
Das war zum Thema. Ich habe nur erzählt, wie ich Timestamps in meiner Software verwende, nämlich als Int64, die ich nicht in Integer umwandle. Das wolltest du doch.