Thema: FreePascal Zeit in Sekunden umrechnen

Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Zeit in Sekunden umrechnen

  Alt 12. Dez 2015, 11:57
Das Ergebnis multipliziert man mit SecsPerDay und ist fertig
Stimmt, stell Dir vor, die Software wird auf dem Titan ausgeführt, da hat der Tag einen anderen Wert für SecsPerDay .
Stell dir vor, jemand anderes soll deinen Code lesen und verstehen

Delphi-Quellcode:
function SecondsFromTime( ATime: TTime ) : Integer;
begin
  Result := ATime * 86400;
end;

function SecondsFromTimeStr( const ATimeStr: string ):Integer;
begin
  Result := SecondsFromTime( StrToTime( ATimeStr ) );
end;
oder
Delphi-Quellcode:
function SecondsFromTime( ATime: TTime ) : Integer;
begin
  Result := ATime * SecsPerDay;
end;

function SecondsFromTimeStr( const ATimeStr: string ):Integer;
begin
  Result := SecondsFromTime( StrToTime( ATimeStr ) );
end;
Wo hat der unbedarfte Leser wohl schneller die Funktionsweise erfasst?

Ja, man kann natürlich für die Lesbarkeit einen Kommentar schreiben
Delphi-Quellcode:
function SecondsFromTime( ATime: TTime ) : Integer;
begin
  Result := ATime * { Sekunden pro Tag } 86400;
end;
wir vergleichen nochmal mit
Delphi-Quellcode:
function SecondsFromTime( ATime: TTime ) : Integer;
begin
  Result := ATime * SecsPerDay;
end;
Huch, documented by code

Und wo können sich beim Tippen wohl eher Fehler einschleichen?

Darum keine magic values im Code
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat