AGB  ·  Datenschutz  ·  Impressum  







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

Verbleibende Zeit

Ein Thema von TJDD · begonnen am 25. Aug 2005 · letzter Beitrag vom 26. Aug 2005
Antwort Antwort
TJDD

Registriert seit: 25. Aug 2005
26 Beiträge
 
#1

Verbleibende Zeit

  Alt 25. Aug 2005, 22:18
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var aStd, aMin, aSec, aMsec : word;
    Buffer_Min, Buffer_Std, Buffer_sec : integer;
begin
  DecodeTime(Time, aStd, aMin, aSec, aMsec);
  if Min = 0 then
    begin
      Buffer_Min := 60 - aMin;
      Buffer_Std := Std - aStd - 1;
    end
  else if Min < aMin then
    begin
      Buffer_Min := 59 - aMin + Min;
      Buffer_Std := Std - aStd - 1;
    end
  else
    begin
      Buffer_Min := Min - (aMin + 1);
      Buffer_Std := Std - aStd;
    end;
  if Std < aStd then
    Buffer_Std := 23 - aStd + Std;
  if (Std = aStd) and (Min < aMin )then
     Buffer_Std := 23 - aStd + Std;
  if (Std = aStd) and (Min > aMin )then
     Buffer_Std := 0;
  Buffer_Sec := 60 - aSec;
  lbTime.Caption := Timetostr(Time) + ' Uhr';
  lbVerbleib.Caption := 'Verbleibene Zeit noch : ' + inttostr(Buffer_Std) + ' Std und ' + inttostr(Buffer_Min) + ' Min und ' + inttostr(Buffer_Sec) + ' Sec';
end;
Ein weiters Problem das ich habe ist eine Anzeige der verbleibenden Zeit

Also Fehler ist der das ich immer die falsche Zeit angezeigt bekomme

Das Programm soll mir max (24 STD) runterzählen


Das heist ich teste die aktuelle zeit mit der eingegeben Uhrzeit und rechen den verbleib aus

Fehler ist nur bei der anzeige den der rest funzt auf die sec genau

Danke

[edit=Sharky]Quote-Tags durch Delphi-Tags ersetzt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Verbleibende Zeit

  Alt 25. Aug 2005, 22:27
schau dir mal die datum-zeit funktionen an aus der delphi hilfe
da gibts dann alle funktionen die du brauchst. dann musst du nicht mit integers rumfummeln sondern kannst direkt time between datetime <-> datetime ausrechnen LASSEN.
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
TJDD

Registriert seit: 25. Aug 2005
26 Beiträge
 
#3

Re: Verbleibende Zeit

  Alt 25. Aug 2005, 22:28
danke
Finde ich das dort wo die BSPs sind??
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Verbleibende Zeit

  Alt 25. Aug 2005, 22:32
was hast fürn delphi?
also in 6,7 usw wäre das dort zu finden:
Delphi Hilfe -> Delphi Objekt- und Komponentenreferenz -> Routinen nach Kategorien -> Datum/Zeit ->

da guckste dir mal die funktionen an. die sollten dir die meiste arbeit komplett abnehmen können, wenn sie geschickt verwendet werden
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
TJDD

Registriert seit: 25. Aug 2005
26 Beiträge
 
#5

Re: Verbleibende Zeit

  Alt 25. Aug 2005, 22:35
7er der Delphis (LOL)

hab was gefunden

CompareDate (Funktion)

Die Funktion vergleicht die Datumsanteile zweier TDateTime-Werte.

CompareDateTime (Funktion)

Die Funktion gibt das Verhältnis zwischen zwei TDateTime-Werten an.

CompareTime (Funktion)

Die Funktion vergleicht die Zeitanteile zweier TDateTime-Werte.

welche ist die richtige für meinen Fall


oder soll ich diese

Delphi-Syntax:

Zitat:
function SecondsBetween(const ANow, AThen: TDateTime): Int64;

Beschreibung

Mit SecondsBetween können Sie die Differenz zwischen zwei TDateTime-Werten in Sekunden ermitteln. SecondsBetween zählt nur vollständige Sekunden. Deshalb meldet SecondsBetween als Differenz zwischen 09:00:00 Uhr und 09:00:00:999 Uhr den Wert Null, da die Differenz um eine Millisekunde kürzer als eine Sekunde ist.
dan via mod ind div auf min und std kürzen????
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Verbleibende Zeit

  Alt 25. Aug 2005, 22:41
ich weis nicht genau. schau genau was du brauchst (evtl nur die zeitanteile nacher decodieren aus dem datetime typ)
du musst halt aufpassen mit was du hantierst und was du eigentlich brauchst
Time/Datetime/Date
das sind underschiedliche sachen, sind aber kombinierbar usw
recode und decode und encode usw falls was umwandeln willst, das kennste aber schon.

z.b. minutesbetween gibt dir die minuten zwischen 2 datetime werten aus (da muss natürlich aufgepasst werden, das das datum auch passt und nicht nur die zeit, da sonst auch tage und so weiter verrechnet werden )

... such dir raus was du brauchst

//edit
genau.. das müsste gehen
oder halt einfach so:

Delphi-Quellcode:
var
datum1,datum2,datum3: Tdatetime;
differenz: string;
begin

datum3 := datum2-datum1; // differenz
differenz := datetimetostr(datum3); // als string präsentieren ;)
pseudocode nicht getestet
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
TJDD

Registriert seit: 25. Aug 2005
26 Beiträge
 
#7

Re: Verbleibende Zeit

  Alt 25. Aug 2005, 22:50
Ich brauch nur die Uhrzeit und lese nur Uhrzeit raus der Wert der eingegeben wird ht keine sec

Kannst du mir nicht vlt sagen ob ich oben vlt nur was ändern bracu (lol)

denn ich finde im mom keine passende funktion hier also die eine macht es in std die andere in min die andere in sec aber keine die hingeht und sagt std+min+sec

Beispiel
ich brauch
Uhrzeit: 12:36:24
Eingabe: 11:00
Differenz: 23:23:36

die funktionen geben
Std: 23
Min : 1403
sec: 84216

also muss ich es anderst machen

//EIDT:\\


habe mal was getestet

Zitat:
procedure TForm1.Button1Click(Sender: TObject);
var Uhrzeit_jetzt : string ;
Uhrzeit_Ende, Uhrzeit_Verbleib : Ttime;
begin
edit1.Text := Timetostr(Time);
Uhrzeit_Ende := strtoTime('23:00:00');
edit2.text := Timetostr(Uhrzeit_Ende);
Uhrzeit_Verbleib := Time - Uhrzeit_ende;
edit3.text := timetostr(Uhrzeit_Verbleib);
end;
nun muss ich noch überprüfen welcher görßer ist um dann auch wenn ich zb

Uhrzeit: 12:36:24
Eingabe: 12:00
Differenz: 0:36:24

habe das nicht angeszeigt bekomme sondern 23 also uss ich das ganze noch von 24:00:00 abziehen oder net??
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Verbleibende Zeit

  Alt 25. Aug 2005, 23:25
Uhrzeit: 12:36:24
Eingabe: 11:00
Differenz: 23:23:36

also:

pseudocode:
Delphi-Quellcode:
var
datetime1,differenz:Tdatetime;
h,m:integer;

begin
datetime1 := now;
//datetime1 nun mit decrhour und decrmin die minuten und stunden abziehen davon, die man eingegeben hat
//dann bekommste die differenz
//
und die kannst wiederum mit datetimetostring (nicht datetimetostr) umwandeln nach hh:mm:nn
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
TJDD

Registriert seit: 25. Aug 2005
26 Beiträge
 
#9

Re: Verbleibende Zeit

  Alt 26. Aug 2005, 09:05
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Uhrzeit_Ende, Uhrzeit_Verbleib : Tdatetime;
    Buffer, MIN, STD, SEC :string;
    aStd, aMin, aSec, aMsec : word;
    bstd, bmin,bsec:integer;
 begin
DecodeTime(Time, aStd, aMin, aSec, aMsec);
edit1.Text := Timetostr(Time);
Uhrzeit_Ende := strtoTime('12:00:00');
edit2.text := Timetostr(Uhrzeit_Ende);
Uhrzeit_Verbleib := Time - Uhrzeit_ende;
Buffer := timetostr(Uhrzeit_Verbleib);
if Uhrzeit_Ende > Time then
  begin
      Std := copy(Buffer, 1,2);
      Min := copy(Buffer, 4,2);
      Sec := copy(Buffer, 7,2);
      bsec := strtoint(Sec) +1;
     edit3.Text := std+ ':' + min+ ':' + inttostr(bsec);
  end
else
  begin
  Std := copy(Buffer, 1,2);
  Min := copy(Buffer, 4,2);
  bstd := 23-strtoint(std);
  bmin := 59-strtoint(min);
  if asec >0 then
    bsec := 60-asec
   else
    bsec := 0;
  edit4.Text := inttostr(bstd)+ ':' +inttostr(bmin)+ ':' +inttostr(bsec);
  end;
end;
so muss es gehenalso ich seh keinen Fehler mehr kann mal jmd durch gehen und/oder testen

Danke schon zum 2. mal supermuckl

//EDIT:\\

wie kann man eine form vollständig aus dem quellcode ntfrenen so dass sie im ordner gelöscht werden kann
  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 06:15 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