Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Stundenlohn * Time? Möglich? (https://www.delphipraxis.net/95185-stundenlohn-%2A-time-moeglich.html)

Overclocker 2. Jul 2007 21:19


Stundenlohn * Time? Möglich?
 
Hi,

bin schon lange daran herauszufinden, ob folgendes überhaupt möglich ist:

In Edit3.Text steht die Zeit in Form von hh:mm:ss, also hier wird quasi ständig hochgezählt: 00:00:01,00:00:02;00:00:03,usw.

In Edit1.Text steht der aktuelle Stundenlohn (sagen wir mal 8,50 €).

Nun ist meine Frage, besteht die möglichkeit in Edit2 den aktuellen Lohnstand herauszufinden??

Es soll sozusagen in Echtzeit den aktuellen Lohn hochzählen, ist dies überhaupt möglich von der konvertierung her??

Wäre sehr dankbar


Grüße

[edit=SirThornberry]Titel korrigiert - Mfg, SirThornberry[/edit]

mkinzler 2. Jul 2007 21:23

Re: Stundenlohn * Time???????Möglich?
 
Ja, warum nicht?

BenjaminH 2. Jul 2007 21:23

Re: Stundenlohn * Time???????Möglich?
 
Wenn du das Editfeld in TDateTime umwandelst, dann hast du als Nachkommastellen die Stunden.
Multiplizierst du das mit 24, dann stehen die vor dem Komma. Dann kannst du den ganzen Wert einfach mit dem Stundenlohn multiplizieren:
Delphi-Quellcode:
Time:TDateTime;
Gearbeitet:Extended;

Time:=StrToTime(Edit1.Text);
Gearbeitet:=24*Time;
Edit2.Text:=FloattoStr(Gearbeitet*Stundenlohn);
Ist kurz auf dem Kopf rausgeschrieben, könnte teilweise falsch sein. Das Prinzip müsste aber funktionieren.

scrat1979 2. Jul 2007 21:25

Re: Stundenlohn * Time???????Möglich?
 
Hallo!!

Hier mal ein Denkanstoß (s. auch Delphi Hilfe und suche im Forum nach den Begriffen...)

1.) GetTickCount aufrufen (s. Hilfe) und in Variable speichern
2.) Timer setzen und beim OnTimer-Event:
GetTickCount nochmal aufrufen und in 2. Variable speichern

3.) V2 - V1 (müsste Zeitdifferenz in ms sein)
4.) ms in Sekunden oder MInuten umrechnen und mit STundenlohn multiplizieren..
5.) Ergebnis von 4.) in Edit-Feld anzeigen lassen

Grüße,

SCRaT

P.S: Auch interessant:

1.) Aktuelles Datum/Zeit in Variable (Typ DateTime) speichern
2.) Wieder Timer und im OnTimer-Event:
Variable2 (auch TDateTime) aktuelle Zeit/Datum zuweisen (V2 := NOW);
3.) Funktion MinutesBetween(V2, V1) gibt Zeitdifferenz in Minuten aus (Unit einbinden, Name steht in der Delphi-Hilfe, glaube DateUtils)
4.)weiter wie oben...

Olli 2. Jul 2007 21:27

Re: Stundenlohn * Time???????Möglich?
 
Man nehme Edit2.Text und splitte es auf bei den ':' ... dann multipliziere man den Minutenwert mit 60 und den Stundenwert mit 3600. Dann zähle man alle drei zusammen (Addition). Von dem Stundenlohn parse man die Währung weg, so daß man einen Zahlwert hat, den man durch Umwandlung des Strings in einen Float erhält. Nun nur noch Stundenlohn mal zusammengezählter Wert von Edit3.Text und durch 3600 dividieren. Voila.

Kann sein, daß es noch Delphi-RTL-Funktionen gibt die auch helfen würden.

Overclocker 2. Jul 2007 21:36

Re: Stundenlohn * Time???????Möglich?
 
Ihr seid der hammer, des dauert jetzt erstmal für mich als einsteiger des ganze zu verarbeiten und mir die beste lösung zu erarbeiten :)


danke euch allen :thumb:

negaH 2. Jul 2007 23:59

Re: Stundenlohn * Time???????Möglich?
 
Delphi-Quellcode:

EditLohn.Text := FormatFloat('0.00#,## Euro', StrToDateTime(EditZeit.Text) * 24 * StrToFloat(EditStundeLohn.Text));
Gruß Hagen

hathor 3. Jul 2007 09:28

Re: Stundenlohn * Time???????Möglich?
 
Mach's doch einfach so:

Delphi-Quellcode:

procedure TForm1.Timer1Timer(Sender: TObject);
var SL, Lsec : currency;
begin
SL:= 8.50;  //Stundenlohn
Lsec:= SL/3600;  // Lohn pro Sec
L:= L + Lsec; // L : currency; Globale Var
Label1.Caption := FormatFloat('0.00#,## Euro', L);
end;

Overclocker 3. Jul 2007 17:22

Re: Stundenlohn * Time???????Möglich?
 
hathors kurzer aber doch guter code funktioniert und an dieser stelle nochmal danke an alle helfer :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 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