Hallo Franki,
habe jetzt mal in einer Testumgebung das Thema "Arbeitszeit" umgesetzt.
Ergebnisse scheinen zunächst plausibel habe auch gleich eine Col Gleitzeit hinzugefügt
ist mein Code denn auch plausibel und korrekt? oder wie kann der optimiert werden?
zunächst setze ich meine Standards wie Anfang ende auf tägliche Anwesenheit also
07:00 - 16:00 bei jedem dtp.value change
Private dStart As Date
Private dEnde As Date
Private Sub dtpDatum_ValueChanged(sender As Object, e As EventArgs) Handles _
dtpDatum.ValueChanged
'Tagesschicht setzen
dStart = New Date(dtpBeginn.Value.Year, dtpBeginn.Value.Month, _
dtpBeginn.Value.Day, 7, 0, 0)
dEnde = New Date(dtpEnde.Value.Year, dtpEnde.Value.Month, _
dtpEnde.Value.Day, 16, 0, 0)
setze_Start_Ende(dStart, dEnde)
End Sub
Private Sub setze_Start_Ende(ByVal d1 As Date, ByVal d2 As Date)
dtpBeginn.Value = d1
dtpEnde.Value = d2
End Sub und so berechne ich das und füge eine neue Row hinzu
Private Sub btnUebernehmen_Click(sender As Object, e As EventArgs) Handles _
btnUebernehmen.Click
If dtpBeginn.Value = dtpEnde.Value Or dtpBeginn.Value > _
dtpEnde.Value Then
MessageBox.Show("Kontrollieren Sie bitte Ihre Zeiten!", "Hinweis:")
Exit Sub
End If
_Arbeitszeit_berechnen()
End Sub
Private Sub _Arbeitszeit_berechnen()
Dim anfang As DateTime = (dtpBeginn.Value) ' Datum ist 20.6.2014
' Uhrzeit ist 8:00:00
Dim ende As DateTime = (dtpEnde.Value) ' Datum ist 20.6.2014
' Uhrzeit ist 16:30:00
Dim dauer As TimeSpan = ende - anfang
Dim pause As TimeSpan = New TimeSpan(0, CInt(nud_Dauer.Value), 0)
Dim soll As TimeSpan = New TimeSpan(0, 408, 0)
Dim NewRow As DataRow = dt.NewRow
NewRow("Tag") = dtpDatum.Value.ToShortDateString
NewRow("Beginn") = dtpBeginn.Value.ToShortTimeString
NewRow("Ende") = dtpEnde.Value.ToShortTimeString
NewRow("Pause") = pause
NewRow("Anwesend") = dauer
NewRow("Soll-AZ") = soll
NewRow("Ist-AZ") = dauer - pause
NewRow("Gleitzeit") = (dauer - soll) - pause
dt.Rows.Add(NewRow)
End Subso sieht es dann aus über eine Antwort auf meinen Post würde ich mich freuen.
jede Verbesserung an dem Code ist mir angenehm soll ja Richtig funktionieren.
die Darstellung 01:27:00 kann man das auch als ganzzahl hinbekommen?
sind ja 87 Minuten
https://picload.org/view/dcocwwii/18-11-_2018_11-22-59.png.html
und dann das Thema Aufgaben ? |