![]() |
Problem mit meiner Zeitberechnung
Also, ich will sone Art Counter proggn. Dazu will ich die Anzahl der Stunden bis zur eingebenen Zeit berechnen und runter zählen lassen. Ich hab n Beispiel für´ne Berechnung in der DP gefunden, nur leider zählt er hoch und nich runter.. :(
Delphi-Quellcode:
Könnte mir da jemand helfen, wie ich den Timer nun runterzählen lassen kann?! :gruebel:
procedure Tfrm_main.Timer1Timer(Sender: TObject);
Var time1,time2:TTime; begin time1:=strtotime(ed_man_zeit.Text); time2:=time1+now; lbl_countdown.Caption:=timetostr(time2); end; Gruß, |
Re: Problem mit meiner Zeitberechnung
Hi Akut-Programming :hi: ,
Hab' mir mal 'n Paar Gedanken gemacht zu deinem Problem und Rumprobiert. Ergebnis:
Delphi-Quellcode:
In diesem Zustand gibt es aber 3 Probleme:
function Before_FormatTimeBis(InputIndex: Byte; InputA, InputB, InputC: String): String;
begin Case InputIndex of // Zeitformat hh:mm:ss 1 : Result := InputA; // Zeitformat hh:mm 2 : Result := InputB + ':00'; // Zeitformat hh 3 : Result := InputC + ':00:00'; else Result := '00:00:00'; end; end; function OnlyHours(Value: TTime): String; var Buffer: String; begin Buffer := TimeToStr(Value); Delete(Buffer, 3, 999); Result := Buffer; end; function FormatToTime(Value: String): TTime; begin try Result := StrToTime(Value); except Result := 0; end; end; function GetTimeBis(Bis: TTime): TTime; begin Result := Time-Bis; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Edit2.Text := OnlyHours( GetTimeBis( FormatToTime( Before_FormatTimeBis(2{-> Zeitformat hh:mm}, '', Edit1.Text{Input}, '') ))); end; 1. Die Zeit muss vollständig und im angegebenen Format sein ("Before_FormatTimeBis(2{-> Zeitformat hh:mm},'', Edit1.Text{Input}, '')") ! 2. Die Zeit muss in der Zukunft liegen, sonst wird rauf- und nicht runtergezählt ! 3. Die Zeit muss am selben Tag sein ! Viel Glück ! |
Re: Problem mit meiner Zeitberechnung
Hey, dank dir Alhpa! :thuimb:
Das hört sich ja schon ganz gut an, wobei ich´s eigentlich schon hinbekommen wollte, auch ne kleinere Zeit als "now" angeben zukönnen, falls die Anwendung dochmal länger läuft.. aber vielleicht kann ich ja deinen Code noch etwas optimieren. Wie gesagt, dank dir erstmaL! :mrgreen: Gruß, |
Re: Problem mit meiner Zeitberechnung
Also ich hab mir den Code jetzt mal vorgenommen, und mich verwunderts, das nur ne zweistellige "Uhrzeit" rauskommt?! :gruebel: Obwohl ich die Uhrzeit übern MaskEdit schon im richtigen Format übergebe, meint deine Funktion "function Before_FormatTimeBis" sie doch formatieren zu müssen! Ich guck ma ob ich dahinter steige :mrgreen:
Gruß, |
Re: Problem mit meiner Zeitberechnung
Hmm soganz bin ich da nicht dahinter gestiegen... :oops: ... hmm muss ich ma gucken ob Lefko es mir verrät :gruebel:
Gruß, |
Re: Problem mit meiner Zeitberechnung
ich hab sowas ähnliches bei meinem timer mit drin:
für tage:
Delphi-Quellcode:
für stunden
tage.Caption:=inttostr(trunc(DateTimePicker1.Date-date));
Delphi-Quellcode:
rectime ist dabei die zeit, die du vorher eingestellt hast (bei mir die zeit zum beenden der programme)
if datetostr(date)=datetostr(datetimepicker1.Date)
then if zeit.caption<timetostr(rectime) then stunden.Caption:=timetostr(rectime-time); das ganze steht natürlich allen im ontimer, damit auch kräftig runter gezählt wird (timer auf ca. 1000ms stellen) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz