AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit meiner Zeitberechnung

Ein Thema von Akut-Programming · begonnen am 2. Apr 2004 · letzter Beitrag vom 5. Apr 2004
Antwort Antwort
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#1

Problem mit meiner Zeitberechnung

  Alt 2. Apr 2004, 11:22
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?!


Gruß,
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
AlphaBug

Registriert seit: 2. Mär 2004
Ort: hinterm Transistor 246 gleich links
46 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Problem mit meiner Zeitberechnung

  Alt 2. Apr 2004, 12:37
Hi Akut-Programming ,

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 !
Delphi 4ever !
  Mit Zitat antworten Zitat
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#3

Re: Problem mit meiner Zeitberechnung

  Alt 2. Apr 2004, 12:59
Hey, dank dir Alhpa!

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!


Gruß,
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#4

Re: Problem mit meiner Zeitberechnung

  Alt 2. Apr 2004, 15:51
Also ich hab mir den Code jetzt mal vorgenommen, und mich verwunderts, das nur ne zweistellige "Uhrzeit" rauskommt?! 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

Gruß,
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Akut-Programming

Registriert seit: 18. Aug 2003
648 Beiträge
 
#5

Re: Problem mit meiner Zeitberechnung

  Alt 5. Apr 2004, 07:25
Hmm soganz bin ich da nicht dahinter gestiegen... ... hmm muss ich ma gucken ob Lefko es mir verrät


Gruß,
Akut-Programming
be cool, be hot ... just be
  Mit Zitat antworten Zitat
Benutzerbild von Remote1
Remote1

Registriert seit: 22. Okt 2003
Ort: Dippoldiswalde
252 Beiträge
 
Delphi 6 Personal
 
#6

Re: Problem mit meiner Zeitberechnung

  Alt 5. Apr 2004, 07:43
ich hab sowas ähnliches bei meinem timer mit drin:
für tage:
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)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz