AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Arbeitszeitkonto

Ein Thema von galantfahrer · begonnen am 23. Apr 2010 · letzter Beitrag vom 23. Apr 2010
Antwort Antwort
galantfahrer

Registriert seit: 23. Apr 2010
4 Beiträge
 
#1

Arbeitszeitkonto

  Alt 23. Apr 2010, 10:09
Hallo,

wir haben heute im Informatikunterricht die Aufgabe bekommen, leider hänge ich mit der tdatetime sache immer noch ganz schon durch.

- 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

wir haben allerdings noch keinen interne Speicherbenutzung behandelt -> also ist Voraussetzung das der User seine alten Überstunden kennt und eingeben kann


Herzlichen Dank im Voraus.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Arbeitszeitkonto

  Alt 23. Apr 2010, 10:12
Hallo, herzlich Willkommen in der DP!

Hausaufgaben wird dir hier keiner lösen, da du selbst etwas lernen sollst.

Zeige uns doch bitte deinen bisherigen Ansatz (Quellcode) und wo es genau klemmt bzw. was nicht funktioniert. Ggf. mit genauer Fehlerbeschreibung und einer auftretenden Fehlermeldung.
Dann können wir dir sicher besser helfen.

Grüße, Matze
  Mit Zitat antworten Zitat
23. Apr 2010, 10:14
Dieses Thema wurde von "Sharky" von "Tutorials und Kurse" nach "Sonstige Fragen zu Delphi" verschoben.
Ist ja kein Tut.
galantfahrer

Registriert seit: 23. Apr 2010
4 Beiträge
 
#4

Re: Arbeitszeitkonto

  Alt 23. Apr 2010, 10:25
Hallo, sorry wollte nicht da mir jemand meine Hausaufgaben macht. Brauche nur etwas Hilfe und weiß aber noch nicht so richtig wo ich anfangen soll.

hier mal der qQellcode:
Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
var a,b,c:tdatetime;
var ha,ma,sa,msa,hb,mb,sb,msb,hü,mü,d:word;
begin
  a:=strtotime(maskedit8.text);
  b:=strtotime(maskedit9.Text);

  decodetime(a,ha,ma,sa,msa);
  decodetime(b,hb,mb,sb,msb);
  hü:=hb-ha-8;
  mü:=mb-ma-45;
  d:=hü+mü;
  //c:=b-a;
  edit10.Text:=inttostr(hü);
  edit11.Text:=inttostr(mü);
  //edit17.Text:=timetostr(c);

end;
das ist Erstmal mein Anfang. ich weiß das ist noch nicht sehr viel und ich bin auch am zweifeln ob Info die richtige Wahl für mich war...
jedenfalls spukt er mir in beiden fällen für die Negativstunden seltsame Dinge wie: H =65534 und min :=65446 aus bei einer zeit Eingabe von 6:45 bis 13:00

und einfach nur die Uhrzeiten subtrahieren ist sicher auch nicht die Lösung meines Problems glaube ich.

[edit=Sharky]Delphi-Tags eingefügt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#5

Re: Arbeitszeitkonto

  Alt 23. Apr 2010, 10:53
Zuerst mal:

Warum gibst du deinen Variablen keine anständigen Bezeichnungen, wie "Kommtzeit" und "Gehtzeit"?

Da blickt ja keiner durch, einschließlich du selbst, wenn du mal ein paar Tage wartest und dann deinen Code wieder anschaust.

Dann:

Du kannst DateTime-Werte direkt voneinander abziehen, wobei ein Problem entstehen könnte, wenn der Mitarbeiter "Nachtschicht" arbeitet, z.B. Kommzeit = 23:00 und Gehtzeit = 6:00.

Guido
  Mit Zitat antworten Zitat
galantfahrer

Registriert seit: 23. Apr 2010
4 Beiträge
 
#6

Re: Arbeitszeitkonto

  Alt 23. Apr 2010, 11:02
das mit der Bezeichnerei steckt noch aus der schule drin.

a-> Kommzeit und b -> Gehzeit und h,m,s,ms entspricht Stunden, Minuten, Sekunden und Millisekunden und das jeweils zugehörig zur Komm- bzw Gehzeit

das mit der Nachtschicht wollte ich evtl. mit einen tauschen von a und b bewerkstelligen,

geschrieben , getan, nur das funktioniert so leider doch nicht
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#7

Re: Arbeitszeitkonto

  Alt 23. Apr 2010, 12:03
Wie wäre es damit:

Mit MinutesBetween können Sie die Differenz zwischen zwei TDateTime-Werten in Minuten ermitteln. MinutesBetween zählt nur vollständige Minuten. Deshalb meldet MinutesBetween als Differenz zwischen 09:00:00 Uhr und 09:00:59:999 Uhr den Wert Null, da die Differenz um eine Millisekunde kürzer als eine Minute ist.

Zur Nachtschicht:

In Delphi entspricht der Typ TDateTime einem Double-Wert. Der ganzzahlige Teil eines TDateTime-Wertes von Delphi entspricht der Anzahl der Tage seit dem 30.12.1899. Der fraktionale Teil des TDateTime-Wertes gibt die Tageszeit an.

Da du ja nur die Tageszeit angibst ist der ganzzahlige Teil in deinem Fall Null. Du müsstest als ganz einfach nur einen Tag zur Gehtzeit hinzufügen:

Gehtzeit := Gehtzeit + 1

Anschließend müsste auch die Nachschicht richtig berechnet werden.
  Mit Zitat antworten Zitat
galantfahrer

Registriert seit: 23. Apr 2010
4 Beiträge
 
#8

Re: Arbeitszeitkonto

  Alt 23. Apr 2010, 12:52
hm das klingt soweit ganz gut. minutesbetween war mir bisher noch unbekannt. dank dir nochmal, ich werde es gleich einmal eingeben.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

Re: Arbeitszeitkonto

  Alt 23. Apr 2010, 12:53
Und bevor die Frage kommt: Unit DateUtils
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz