Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Zeitraum zur Uhrzeit addieren
WarrenFaith - Mi 12.05.04 15:37
Titel: Zeitraum zur Uhrzeit addieren
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?
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]
jaenicke - 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:
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 - Mi 12.05.04 16:18
Danke nun hab ich endlich ne idee (danke auch für die berechtigte kritik am post)
MSCH - Mi 12.05.04 19:26
da gibts die Unit DateUtils, da ist alles drinne was man so brauch.
grez
msch
WarrenFaith - Do 13.05.04 08:05
ich glaub das ist bei Delphi 5 nicht dabei :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!