Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#16

Re: Silvester Countdown

  Alt 30. Dez 2005, 08:54
Zitat von urbanbruhin:
...wenn du es genau haben willst, kannst du ja der intervall auf 1 oder auf 10 stellen, aber immer ein teiler von 1000, sonst könnte es dann doch ziemlich abweichen.

was du natürlich auch noch beachten musst, ist, die systemzeit sehr genau einzustellen, sonst nützt auch der kleinste inervall vom timer nichts...
Entschuldige bitte, aber das ist Quark^3.
Wenn ich im Timer-Ereignis immer die Differenz zwischen '1.1.2006 00:00:00' und Jetzt anzeige, ist es absolut egal, wie genau die Systemzeit ist, und wie ich das Timerinterval einstelle, solange es < 1000 ist. Es wird dann garantiert jede Sekunde mindestens einmal die Zeit abgefragt.

Wie zeige ich die Differenz an?
Delphi-Quellcode:
Function RemainingTime(aStart, aStop: TDateTime): String;
Var
  iSeconds, iMins, iHrs, iDays: Int64;

Begin
  iSeconds := Trunc(0.5 + (aStop - aStart) * 86400); // Erstmal Sekunden ausrechnen und aufrunden
  Result := Format('%.2d sec', [iSeconds Mod 60]);
  iMins := iSeconds Div 60; // Minuten ausrechnen
  If iMins = 0 Then Exit;
  Result := Format('%.2d min, %s', [iMins Mod 60, Result]);
  iHrs := iMins Div 60; // Stunden ausrechnen
  If iHrs = 0 Then Exit;
  Result := Format('%.2d Std, %s', [iHrs Mod 24, Result]);
  iDays := iHrs Div 24; // Tage ausrechnen
  Case iDays of
    0 : ;
    1 :
      Result := Format('%d Tag, %s', [aSeconds, Result]);
    Else
      Result := Format('%d Tage, %s', [aSeconds, Result]);
  End
End;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat