![]() |
Verbleibende Zeit
Delphi-Quellcode:
Ein weiters Problem das ich habe ist eine Anzeige der verbleibenden Zeit
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; 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] |
Re: Verbleibende Zeit
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. |
Re: Verbleibende Zeit
danke
Finde ich das dort wo die BSPs sind?? |
Re: Verbleibende Zeit
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 ;) |
Re: Verbleibende Zeit
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:
|
Re: Verbleibende Zeit
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:
pseudocode nicht getestet
var
datum1,datum2,datum3: Tdatetime; differenz: string; begin datum3 := datum2-datum1; // differenz differenz := datetimetostr(datum3); // als string präsentieren ;) |
Re: Verbleibende Zeit
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:
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?? |
Re: Verbleibende Zeit
Uhrzeit: 12:36:24
Eingabe: 11:00 Differenz: 23:23:36 also: pseudocode:
Delphi-Quellcode:
und die kannst wiederum mit datetimetostring (nicht datetimetostr) umwandeln nach hh:mm:nn
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 // |
Re: Verbleibende Zeit
Delphi-Quellcode:
so muss es gehenalso ich seh keinen Fehler mehr kann mal jmd durch gehen und/oder testen
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; 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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 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