Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Variable
Peter Zissou - Mo 28.03.11 16:53
Titel: Variable
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
elundril - Mo 28.03.11 16:57
Hallo und :welcome: im DF!
Einseits, verwende bitte für deinen Quelltext die Delphi-Tags [delphi][/delphi]. Dadurch brauchst du auch die Zahl 8 nicht mehr so verschlüsseln und es wird auch lesbarer.
Weiters würd ich dich bitten die Variablen aussagekräftig zu benennen oder zumindest den Quelltext so zu kommentieren das man weiß was jetzt a, b und c sind. ;) Mir persönlich wäre die erste Variante lieber, sonst verliert man etwas die Übersicht.
lg elundril
Jann1k - Mo 28.03.11 17:28
Deklariere deine Variable nicht als Word sonder zB als Integer. Der Datentyp Word hat einen Bereich von 0 bis 65535, damit kannst du also keine negativen Zahlen darstellen.
Peter Zissou - Mo 28.03.11 23:06
hey ich habe die variablen schnell angepasst. danke erstmal das mit dem integer klappt nicht, da geht decode time nicht mehr. sry das ich das hier so hinklatsche, aber ist abendschule und ich muss morgen wieder früh zeitig auf arbeit. also noch ideen die mein leben retten? danke ;;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!