Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit meiner Zeitberechnung (https://www.delphipraxis.net/19398-problem-mit-meiner-zeitberechnung.html)

Akut-Programming 2. Apr 2004 11:22


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:
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;
Könnte mir da jemand helfen, wie ich den Timer nun runterzählen lassen kann?! :gruebel:


Gruß,

AlphaBug 2. Apr 2004 12:37

Re: Problem mit meiner Zeitberechnung
 
Hi Akut-Programming :hi: ,

Hab' mir mal 'n Paar Gedanken gemacht zu deinem Problem und Rumprobiert.

Ergebnis:

Delphi-Quellcode:
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;
In diesem Zustand gibt es aber 3 Probleme:

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 !

Akut-Programming 2. Apr 2004 12:59

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ß,

Akut-Programming 2. Apr 2004 15:51

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ß,

Akut-Programming 5. Apr 2004 07:25

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ß,

Remote1 5. Apr 2004 07:43

Re: Problem mit meiner Zeitberechnung
 
ich hab sowas ähnliches bei meinem timer mit drin:
für tage:
Delphi-Quellcode:
tage.Caption:=inttostr(trunc(DateTimePicker1.Date-date));
für stunden
Delphi-Quellcode:
if datetostr(date)=datetostr(datetimepicker1.Date)
 then
  if zeit.caption<timetostr(rectime)
   then stunden.Caption:=timetostr(rectime-time);
rectime ist dabei die zeit, die du vorher eingestellt hast (bei mir die zeit zum beenden der programme)

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