![]() |
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] |
Re: Stundenlohn * Time???????Möglich?
Ja, warum nicht?
|
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:
Ist kurz auf dem Kopf rausgeschrieben, könnte teilweise falsch sein. Das Prinzip müsste aber funktionieren.
Time:TDateTime;
Gearbeitet:Extended; Time:=StrToTime(Edit1.Text); Gearbeitet:=24*Time; Edit2.Text:=FloattoStr(Gearbeitet*Stundenlohn); |
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... |
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. |
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: |
Re: Stundenlohn * Time???????Möglich?
Delphi-Quellcode:
Gruß HagenEditLohn.Text := FormatFloat('0.00#,## Euro', StrToDateTime(EditZeit.Text) * 24 * StrToFloat(EditStundeLohn.Text)); |
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; |
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