Thema: Delphi Frage zu Zeitrechnung

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.171 Beiträge
 
Delphi 12 Athens
 
#10

Re: Frage zu Zeitrechnung

  Alt 14. Nov 2003, 11:34
Deine Code ganz oben, kannste etwas verkürzen:
Delphi-Quellcode:
min := akt_sek div 60;
akt_sek := akt_sek - (min * 60);

{=}

akt_sek := akt_sek mod 60;
Das sieht dann so aus:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  akt_year : word; // Jahre
  akt_month : word; // Monate
  akt_day : word; // stunden
  akt_std : word; // aktuelle Stunden
  akt_min : word; // aktuelle Minuten
  akt_sek : word; // aktuelle Sekunden
  akt_mil : word; // Milli-Sekunden

begin
  Form1.Caption := DateToStr(Now) + ' ' + TimeToStr(Now);

  DecodeDateTime(Now,akt_year,akt_month,akt_day,akt_std,akt_min,akt_sek,akt_mil);

  akt_std := akt_std + SpinEdit1.Value;
  akt_min := akt_min + SpinEdit2.Value;
  akt_sek := akt_sek + SpinEdit3.Value;

  akt_min := akt_min + (akt_sek div 60);
  akt_sek := akt_sek mod 60;

  akt_std := akt_std + (akt_min div 60);
  akt_min := akt_min mod 60;

  akt_day := akt_day + (akt_std div 24);
  akt_std := akt_std mod 24;

  Label1.Caption := DateTimeToStr(EncodeDateTime(akt_year,akt_month,akt_day,akt_std,akt_min,akt_sek,akt_mil));
end;

Aber nun zurück zu deinem Problem.
Da kommst du auch ohne selbst die Monatslänge und Schaltjahre zu berücksichtigen hin.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var z: TDateTime;
begin
  Z := Now;

  Form1.Caption := DateToStr(z) + ' ' + TimeToStr(z);

  Label1.Caption := DateTimeToStr(z + (SpinEdit1.Value / 24) +
    (SpinEdit2.Value / 1440) + (SpinEdit3.Value / 86400));
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat