Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli
Online

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Uhrzeit Rest Min und Sec

  Alt 1. Dez 2013, 18:49
Hier mal eine alte Funktion von mir als kleine Anregung.
Das kannst Du sicher noch etwas umbauen...

Delphi-Quellcode:
function DateTimeDurationString(DT: TDateTime; DifFlag, NullFlag, HourFlag, SecondFlag: Boolean): String;
var
  Tage, Hour, Min, Sec, MSec: Word;
  N, Dif: TDateTime;
  S: String;
begin
  S := '';
  if DifFlag then
  begin
    N := Now;
    if DT > N then
      Dif := DT - N
    else
      Dif := 0;
  end
  else
  begin
    if DT > 0 then
      Dif := DT
    else
      Dif := 0;
  end;
  if (Dif <> 0) or (NullFlag) then
  begin
    Tage := Trunc(Dif);
    DecodeTime(Dif, Hour, Min, Sec, MSec);
    if (Tage = 0) or (HourFlag) then
    begin
      if Hour > 0 then
      begin
        if SecondFlag then
          S := FormatDateTime('hh:nn:ss', Dif) + ' h'
        else
          S := FormatDateTime('hh:nn', Dif) + ' h';
      end
      else
      if Min > 0 then
      begin
        if SecondFlag then
          S := FormatDateTime('nn:ss', Dif) + ' min'
        else
          S := FormatDateTime('n', Dif) + ' min';
      end
      else
      begin
        if SecondFlag then
          S := FormatDateTime('ss', Dif) + ' sec'
        else
          S := '< 1 min';
      end;
    end;
    if Tage > 0 then
    begin
      if Dif - Tage = 0 then
        S := ''
      else
      if S <> 'then
        S := ', ' + S;
      if Tage = 1 then
        S := '1 Tag' + S
      else
        S := IntToStr(Tage) + ' Tage' + S;
    end;
  end
  else
    S := '';
  Result := S;
end;
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat