Autor Beitrag
WarrenFaith
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 12.05.04 15:37 
Hi

ich hab folgendes Problem:
Ich hab für ein Onlinegame ein Ressourcenrechner gemacht, der mir ausgibt wieviel Zeit ich bis zum ersparen bestimmter Mengen benötige. Diese Zeiten sind in Tage, Stunden, Minuten unterteilt und jeweil in einem extra editfeld ausgegeben. Nun würde ich gerne die ausgerechnete zeit zur momentanen Systemzeit addieren, damit man bei 3 Tagen, 5h und 37 Minuten nicht noch selbst rechnen muss :)
Ich hab momentan ein Systemzeittimer eingebaut und komme nun nicht weiter.
Hat da wer schonmal sowas gemacht und kann mir nen bissle Quellcode als Ideenstütze geben?

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
 { String sStunde ergibt gesamtdauer, aufteilung der dauer in Tage, Stunden, Minuten }
 while sStunde > 24 do
 begin
      sStunde := sStunde - 24;
      rDay := rDay + 1;
 end;
 Day.Text := FloatToStr(rDay);

 while (sStunde < 24) and (sStunde >= 1) do
 begin
      sStunde := sStunde - 1;
      rHours := rHours + 1;
 end;
 Hours.Text := FloatToStr(rHours);

 if (sStunde < 1) and (sStunde >= 0) then
 begin
      sStunde := sStunde * 60;
      while sStunde >= 1 do
      begin
           sStunde := sStunde - 1;
           rMinutes := rMinutes +1;
      end;
 end;
 Minutes.Text := IntToStr(rMinutes);

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Systemzeit.caption:=timetostr(now);
end;

procedure TForm1.RestzeitClick(Sender: TObject);
begin
 { hier soll die berechnung für die Zeit + Systemzeit hin }
 Restzeit.caption:=TimeToStr(sRestzeit);
end;


Ich bin anfänger, deswegen hab ich wahrscheinlich einen extrem Komplizierten weg genommen um mein Ziel zu erreichen. Also deswegen bitte drüber hinwegsehen :)

Danke im vorraus

[edit] Code verkleinert [/edit]

_________________
-[ Glaube an die Erfüllbarkeit surrealer Träume ]-


Zuletzt bearbeitet von WarrenFaith am Mi 12.05.04 16:11, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 12.05.04 16:02 
Du erwartest doch wohl nicht, dass ich diesen ganzen Quelltext durchgehe, oder???

Schreib bitte nur eine gekürzte Fassung des Quelltextes in deine Frage, bei der alles überflüssige rausgenommen ist :evil:
Und ein bisschen Kommentar wäre hilfreich.

Na gut:

Du musst zur Lösung des Problems wissen, dass die Zeit, also eine TDateTime-Variable nix anderes als eine Gleitkommazahl, bei der 1 ein Tag bedeutet und 1/24 also eine Stunde.
Du musst also Tage + (Stunden / 24) + (Minuten / (24 * 60)) zur aktuellen Systemzeit (now) dazurechnen:

ausblenden Delphi-Quelltext
1:
    Restzeit.caption:=TimeToStr(now + Tage + (Stunden / 24) + (Minuten / (24 * 60)));					


Die Variablen, in denen Stunden und Minuten stehen, musst Du da einsetzen. Welche das sind, kann man ja nicht so schnell in dem Riesenquelltext sehen. (Zumal ohne Kommentare über die Bedeutung der Variablen)

Sebastian
WarrenFaith Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 12.05.04 16:18 
Danke nun hab ich endlich ne idee (danke auch für die berechtigte kritik am post)

_________________
-[ Glaube an die Erfüllbarkeit surrealer Träume ]-
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Mi 12.05.04 19:26 
da gibts die Unit DateUtils, da ist alles drinne was man so brauch.
grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
WarrenFaith Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 13.05.04 08:05 
ich glaub das ist bei Delphi 5 nicht dabei :)

_________________
-[ Glaube an die Erfüllbarkeit surrealer Träume ]-