![]() |
Arbeitstage berechnen
Hallo Leutz
Ich möchte anhand von von zwei Daten sprich z.B. 02.01.05 und 12.02.05 die Arbeitz bzw. die Urlaubstage Berechnen. Wie stelle ich das an hat jemand ein Beispiel. Natürlich ohne Wochendende und Feiertage. |
Re: Arbeitstage berechnen
Hai LogoPie,
als erstes brauchst Du eine Liste aller Feiertage (abhängig vom Bundesland) Dann könntest Du einfach in einer Schleife prüfen ob das Datum X ein Arbeitstag ist. |
Re: Arbeitstage berechnen
Delphi-Quellcode:
(Feiertag Pruefung muss noch eingebaut werden)
Function NumWorkDays( StartDate,EndDate:TDateTime):LongInt;
Var Workdays:LongInt; Begin WorkDays := 0; While StartDate <= EndDate do Begin If DayOfWeek(StartDate) in [2..6] Then Inc( WorkDays ); StartDate := StartDate + 1; End; Result := WorkDays; End; |
Re: Arbeitstage berechnen
schon mal vielen dank,
Aber wie krieg ich das in mein Programm. Habe drei TEdit felder. In die ersten beiden soll der Benutzer das Datum von bis eingeben (12.01.05 bis 29.01.05) Die Rechnung soll durch einen Button ausgelöst werden. Ergebnis soll im dritten Edit angezeit werden. Ergebnis wäre 13 Urlaubstage ohne Wochenende [2..6] gruß LogoPie |
Re: Arbeitstage berechnen
Hai LogoPie,
ich würde für die Datumseingabe keine Edits nehmen sonder TDateTiemPicker. Dann einfach mit dem Code von toms:
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin EditTage.Text := IntToStr (NumWorkDays (DateTimePicker1.Date,DateTimePicker2.Date)); end; |
Re: Arbeitstage berechnen
Juhu klappt wunder bar
Hier mal das Gesamtergebnis für alle anderen.
Delphi-Quellcode:
Nun stehe ich schon vor dem nächsten Problem
Function Arbeitstage( Beginn,Ende:TDateTime):LongInt;
Var Tage:Integer; i :Integer; Begin Tage := 0; i := 1; While Beginn <= Ende do Begin If DayOfWeek(Beginn) in [2..6] Then Inc( Tage ); Beginn := Beginn + i; End; Result := Tage; End; procedure TForm1.Button1Click(Sender: TObject); begin EditTage.Text := IntToStr (Arbeitstage (Beginn.Date,Ende.Date)); end; end. das heißt es ist nur ein kleines. Das einbinden von Feiertagen. Bei festen Tagen wie Silvester oder Weihnachten sollte es keine Probleme geben, aber wie berechne ich z.B Pfingsten oder Ostern. |
Re: Arbeitstage berechnen
Für Ostern gibt es
![]() Heiligabend, Weihnachten, Silvester, 1.Mai sind dagegen wahnsinnig kompliziert :zwinker: *edit* mir fällt gerade ein, dass das mit den 40 Tagen die Fastenzeit war, und 40 Tage nach Ostern auch gar kein Wochenende ist, aber Pfingsten ist afair auch irgendwie abhängig von Ostern. |
Re: Arbeitstage berechnen
|
Re: Arbeitstage berechnen
Hai,
wie Treffnix schon sagte sind die meisten Kirchlichen-Feiertage von Ostern abgeleitet. Dafür findest Du sicher eine Liste. Aber wie ich schon sagte: Du musst die Regelungen der einzelnen Bundesländer beachten. |
Re: Arbeitstage berechnen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:53 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