Hallo und zwar sollen wir ein Arbeitskonto erstellen
- ein User soll sein Arbeitsbeginn und ende eingeben
- die Standartarbeitszeit beträgt 8h45min (pausen sind enthalten)
- das Programm soll dann daraus die Überstunden berechnen welches allerdings nur die Stunden und Minuten beachtet
- Negativstunden sind farblich hinterlegt (das mit der Farbe ist nicht das Problem, nur die Berechnung)
- jetzt soll der User wählen ob er einen Freizeitausgleich oder Bezahlung wünscht
- bei Bezahlung soll der Bruttolohn angegeben werden und dieser dann mit der Uhrzeit addiert werden
- bei Freizeitausgleich sollen dann die Wochen, tage und Stunden ausgegeben werden
Wenn der Arbeiter von 8:00 - 8:45 arbeitet und das in die vorgegebenen Felder eingibt, hat er sozusagen -8 stunden und + 45 Minuten gearbeitet. Ich kann aber nicht einfach meine Stundenvariable h - 8 rechnen, da kommt rund 65000 raus. also habe ich eine if verzweigung eingerichtet, diese kann alle varianten errechnen, außer wenn der arbeiter unter einer stunde arbeitet. jetzt habe ich mir gedacht deklariere doch die variable in der zweiten zeile auf h:=h-8; und gebe das dann aus. geht nicht.... ich sitze hier seid zwei stunden und weiß nicht weiter. hättet ihr noch ne idee?? danke.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| var uhrzeitkommen,uhrzeitgehen,uhrzeitgehen-uhrzeitkommen:TDateTime; var stunden,minuten,sekunden,millisekunden:word;
begin
uhrzeitkommen:=strtotime(maskedit1.Text); uhrzeitgehen:=strtotime(maskedit2.Text); uhrzeitgehen-uhrzeitkommen:=uhrzeitgehen-uhrzeitkommen; maskedit3.Text:=timetostr(uhrzeitgehen-uhrzeitkommen);
DecodeTime(uhrzeitgehen-uhrzeitkommen,stunden,minuten,sekunden,millisekunden);
if (stunden> 0) and (minuten>=0) then begin edit1.text:=inttostr(stunden-8); edit2.text:=inttostr(Minuten-45); end else begin stunden:=stunden-8; (geht nicht!!) edit1.text:=inttostr(Stunden); edit2.text:=inttostr(Minuten-45); |
Moderiert von
Narses: Delphi-Tags hinzugefügt