Entwickler-Ecke
Open Source Projekte - Arbeitstage zwischen 2 Daten
Mathematiker - Sa 01.03.14 11:00
Titel: Arbeitstage zwischen 2 Daten
Hallo,
da unter
http://www.entwickler-ecke.de/viewtopic.php?t=112737 nach der Anzahl von Arbeitstagen zwischen zwei eingegebenen Daten gefragt wurde, habe ich mich mal, allerdings mit Delphi und nicht C#, an eine allgemeine Lösung herangemacht.
Das angehängte Programm ermittelt die Anzahl der Arbeitstage zwischen den 2 Tagen auch unter der Berücksichtigung der Feiertage für alle 16 Bundesländer. D.h., es muss keine Extratabelle geführt werden, welche die vorberechneten Feiertage enthält.
Aus dem Quelltext ist die Berechnung der beweglichen Feiertage, die an Ostern gekoppelt sind, also Karfreitag, Himmelfahrt, Pfingsten und Fronleichnam, und des Buß- und Bettages (Sachsen!) ersichtlich.
Vielleicht nützt das kleine Programm auch
okrim. Er müsste es ja nur nach C# übersetzen. :wink:
Beste Grüße
Mathematiker
Edit 1/2: Es war ja klar. Ohne Fehler geht es bei mir natürlich nicht. Jetzt ist es richtig. Ich hatte einen Fehler, wenn das Enddatum Sonnabend ist.
Edit 3: zusätzlich Österreich ergänzt.
Edit 4/5: alle Schweizer Kantone eingefügt.
Edit 6: mit Liechtenstein und der Angabe der Anzahl von Feiertagen in der Woche.
Edit 7/8: mit Anzeige der Feiertage je Bundesland, Kanton, ... im gewählten Zeitraum.
Delete - Sa 01.03.14 12:38
Lieber Mathematiker!
Wie lange arbeitet ein Lehrer im Jahr?
Das Jahr hat 365 Tage. Davon sind 52 Sonntage und 52 Samstage.
365 - 104 = 261 Tage
Arbeitet ein Lehrer wirklich 261 Tage?
Ein Lehrer arbeitet ca. 8 Stunden, also etwa 1/3 des Tages.
261 : 3 = 87 Tage
Arbeitet ein Lehrer wirklich 87 Tage?
Im Jahr sind 6 Wochen Sommerferien (30 Schultage), 2 Wochen Winterferien (10 Schultage), 2 Wochen Osterferien (10 Schultage), 2 Wochen Pfingstferien (10 Schultage), 1 Woche Herbstferien (5 Schultage) und noch 8 bewegliche Tage. Ergibt zusammen 73 Schultage.
87 - 73 = 14 Tage
Arbeitet ein Lehrer wirklich 14 Tage im Jahr?
Es gibt ja auch noch Feiertage: Neujahr, 1.Mai, Fronleichnam, Allerheiligen, Tag der deutschen Einheit, Christi Himmelfahrt. Ergibt zusammen 6 Tage. In Sachsen kommt noch der Buss- und Bettag dazu...
14 - 7 = 7 Tage
Arbeitet ein Lehrer 7 Tage im Jahr?
Moment, da entfallen ja 7 Tage wegen Ausflüge, Abiprüfungen, Wandertage!
7 - 7 = 0 Tag
Und was ist, wenn ein Lehrer mal krank ist?
Gerd Kayser - Sa 01.03.14 13:07
Mathematiker hat folgendes geschrieben : |
Das angehängte Programm ermittelt die Anzahl der Arbeitstage zwischen den 2 Tagen auch unter der Berücksichtigung der Feiertage für alle 16 Bundesländer. |
Für die Stadt Augsburg ist das aber nicht korrekt, weil die noch einen weiteren Feiertag haben. Siehe:
http://de.wikipedia.org/wiki/Augsburger_Hohes_Friedensfest
Tranx - Sa 01.03.14 13:29
hathor hat folgendes geschrieben : |
Lieber Mathematiker!
Wie lange arbeitet ein Lehrer im Jahr?
Das Jahr hat 365 Tage. Davon sind 52 Sonntage und 52 Samstage.
365 - 104 = 261 Tage
Arbeitet ein Lehrer wirklich 261 Tage?
Ein Lehrer arbeitet ca. 8 Stunden, also etwa 1/3 des Tages.
261 : 3 = 87 Tage
Arbeitet ein Lehrer wirklich 87 Tage?
Im Jahr sind 6 Wochen Sommerferien (30 Schultage), 2 Wochen Winterferien (10 Schultage), 2 Wochen Osterferien (10 Schultage), 2 Wochen Pfingstferien (10 Schultage), 1 Woche Herbstferien (5 Schultage) und noch 8 bewegliche Tage. Ergibt zusammen 73 Schultage.
87 - 73 = 14 Tage
Arbeitet ein Lehrer wirklich 14 Tage im Jahr?
Es gibt ja auch noch Feiertage: Neujahr, 1.Mai, Fronleichnam, Allerheiligen, Tag der deutschen Einheit, Christi Himmelfahrt. Ergibt zusammen 6 Tage. In Sachsen kommt noch der Buss- und Bettag dazu...
14 - 7 = 7 Tage
Arbeitet ein Lehrer 7 Tage im Jahr?
Moment, da entfallen ja 7 Tage wegen Ausflüge, Abiprüfungen, Wandertage!
7 - 7 = 0 Tag
Und was ist, wenn ein Lehrer mal krank ist? |
Also ehrlich, liebe Hathor, das geht nun aber nicht. Erst die Arbeitszeit in Tagen ausrechnen und dann die freien Tage abziehen!! tststs. Korrekterweise hättest Du die Abziehererei vorher machen müssen udn dann durch 3 teilen.
261 - 73 - 7 - 7 = 174 Tage / 3 = 58 Tage zu je 24 Stunden!
Aber das gilt ja wohl für viele Berufe, oder? Und Abiprüfungen abzuziehen. tstststs, was meinst Du wohl, was passieren würde, wenn kein Lehrer diese beaufsichtigen würden. Dann wäre die Schummelei so groß, dass alle eine Eins in allen geprüften Fächern hätten.
Liebe Grüße an die Göttin der Liebe.
Mathematiker - Sa 01.03.14 13:56
Hallo,
hathor hat folgendes geschrieben : |
Wie lange arbeitet ein Lehrer im Jahr? |
Arbeiten? Bist Du von allen guten Geistern verlassen?
Ein Lehrer arbeitet nicht! Er quält nur seine Schüler und hat auch noch Freude daran!
Ich verstehe nur nicht, dass nicht jeder Lehrer wird. Nicht arbeiten, ständig frei und ein unvorstellbar hohes Gehalt, ...
Gerd Kayser hat folgendes geschrieben : |
Für die Stadt Augsburg ist das aber nicht korrekt, weil die noch einen weiteren Feiertag haben. |
Es gilt auch nicht für das Thüringer Eichsfeld und einige Orte in der sächsischen Lausitz. Auf Grund eines etwas größeren Anteils an Katholiken gibt es dort eine Sonderregelung zu Fronleichnam.
Sieht man sich die Arbeitstage etwas genauer an, könnte man annehmen, dass die Bayern am wenigsten arbeiten. Das stimmt aber auch nicht, denn was geschieht den in den Karnevalshochburgen im Moment?
Und außerdem gibt es ja noch die Lehrer ...
Beste Grüße
Mathematiker
Gerd Kayser - Sa 01.03.14 14:34
Mathematiker hat folgendes geschrieben : |
Es gilt auch nicht für das Thüringer Eichsfeld und einige Orte in der sächsischen Lausitz. Auf Grund eines etwas größeren Anteils an Katholiken gibt es dort eine Sonderregelung zu Fronleichnam.
Sieht man sich die Arbeitstage etwas genauer an, könnte man annehmen, dass die Bayern am wenigsten arbeiten. Das stimmt aber auch nicht, denn was geschieht den in den Karnevalshochburgen im Moment? |
Das sind aber keine
gesetzlichen Feiertage.
Mathematiker - So 02.03.14 00:46
Hallo,
Gerd Kayser hat folgendes geschrieben : |
Das sind aber keine gesetzlichen Feiertage. |
Fronleichnam ist im Eichsfeld und in der Lausitz gesetzlicher Feiertag, wenn es auch für den Rest von Thüringen und Sachsen ein Arbeitstag ist.
In der Revision 3 habe ich mal noch Österreich ergänzt. Schließlich gibt es in der EE wohl auch den einen oder anderen Österreicher.
Die Schweiz sehe ich mir morgen mal an.
Beste Grüße
Mathematiker
Nachtrag: Ich habe gerade nach den Schweizer Feiertagen gegoogelt. Tut mir leid, aber das wird nichts. Nahezu jede kleine Region hat andere Regelungen. Und dann gibt's noch Feiertage vom Typ 1 bis 5, was das auch sein mag ...
Tranx - So 02.03.14 08:59
Mathematiker hat folgendes geschrieben : |
Nachtrag: Ich habe gerade nach den Schweizer Feiertagen gegoogelt. Tut mir leid, aber das wird nichts. Nahezu jede kleine Region hat andere Regelungen. Und dann gibt's noch Feiertage vom Typ 1 bis 5, was das auch sein mag ... |
Schau mal hier nach:
http://www.ejpd.admin.ch/content/dam/data/staat_buerger/zivilprozessrecht/kant-feiertage.pdf
Ich denke, Du kannst Dich auf die gesetzlichen udn gesetzlich anerkannten beschränken. Zumeist sind es eh die gleichen Tage.
Gruß
Gunther
Mathematiker - So 02.03.14 11:55
Hallo,
Danke für den Hinweis.
Ich habe mich jetzt durch die Schweizer Feiertagslandschaft gekämpft und im Edit4 alle Kantone eingefügt. Es war etwas Fleißarbeit und außerdem musste ich mein Französisch und Italienisch wieder aufbessern. :wink:
Wer weiß schon, was Ascensione, Corpus domini, Lundi du Jeûne fédéral oder Fête-Dieu für Tage sind. Ich habe wieder etwas gelernt und kann nur hoffen, dass keine Fehler im Programm sind.
Irgendwie haben einige der Kantone doch ungewöhnliche Regelungen, wie z.B. 26.12. wird nicht gefeiert, wenn der 25.12. Montag oder Freitag ist.
So, jetzt fehlt noch Liechtenstein.
Beste Grüße
Mathematiker
ssb-blume - So 02.03.14 12:53
Hallo,
auf Wunsch von Mathematiker hier eine Umsetzung auf C#. Einige Änderungen sind erfolgt, so:
- das Startdatum nicht ab Julius Cäsar, da gab es ja die Feiertage ganz anders..
- daher Ostern einfacher
- Länder in Liste
- Fehler in
Zitat: |
if wochentag2>1 then
begin
dsonntag2:=d2-wochentag2+1;
if wochentag2<7 then arbeitstage:=arbeitstage+wochentag1-1;
end; |
auf wochentag 2 geändert.
Die Datum-Behandlung hat doch einige Schwierigkeiten gemacht, da Umrechnung auf ganze Tage (int..) nicht geht.
Das angehängte Zip-File hat auch allen Mist, den C# so erzeugt.. Setup.exe installiert das Programm.
Viel Vergnügen!
Mathematiker - So 02.03.14 13:54
Hallo,
ssb-blume hat folgendes geschrieben : |
auf Wunsch von Mathematiker hier eine Umsetzung auf C#. |
Danke, sehr schön.
Ich werde mir das genau ansehen und vielleicht lerne ich auch ein klein wenig C#. Zumindest für
okrim dürfte es das Gesuchte sein.
Den Fehler hatte ich schon 'rausgenommen. Am Anfang war er noch drin, ebenso das Problem mit dem Sonnabend.
Beste Grüße
Mathematiker
Gerd Kayser - So 02.03.14 15:36
Mathematiker hat folgendes geschrieben : |
Fronleichnam ist im Eichsfeld und in der Lausitz gesetzlicher Feiertag |
Meine Antwort bezog sich auf die Karnevalshochburgen. Rosenmontag und die anderen tollen Tage sind keine gesetzlichen Feiertage, sondern Brauchtumstage. An diesen Tagen kann der Chef Dir freigeben oder auch nicht.
Hochhaus - So 02.03.14 17:15
Ich finde das Thema ausgesprochen schwierig. Weil die Feiertage nicht nur von Land zu Land unterschiedlich sind, sondern innerhalb der Schweiz sogar noch in fast jedem Kanton anders sind ! Und da es weltweit über 100 Länder gibt, mit Sonderregelungen innerhalb von jedem Land, ist es sehr, sehr schwierig, das in einen Algorithmus zu packen. Man müsste sich fast auf ein Land beschränken. Und noch dann ist es eine grössere Arbeit und Herausforderung.
Hochhaus
Mathematiker - So 02.03.14 20:37
Hallo,
Hochhaus hat folgendes geschrieben : |
Ich finde das Thema ausgesprochen schwierig. |
Harmlos ist es nicht, aber vorwiegend eine Fleißarbeit.
Natürlich kann man nicht alle Länder der Erde berücksichtigen. Mir genügen die deutschsprachigen. Und deshalb ist in Edit 6 jetzt zum Abschluss auch Liechtenstein enthalten.
Außerdem wird in Klammern die Anzahl von Feiertagen in der Woche angegeben; die am Wochenende nicht.
Übrigens könnte eine Ausweitung des Programms auf weitere Länder ziemlich problematisch werden.
Für islamische Länder müsste noch der islamische Kalender integriert und auf unseren Kalender transformiert werden. Zusätzlich ist dort Freitag der Ruhetag und nicht der Sonntag, usw.
Und für China würde es richtig knifflig. Im täglichen Leben wird zwar der Gregorianische Kalender genutzt, die Feiertage richten sich aber nach dem chinesischen Kalender. Und der ist richtig kompliziert!
Unter
http://www.entwickler-ecke.de/viewtopic.php?t=111306 habe ich diesen schon mal umgesetzt.
Beste Grüße
Mathematiker
bole - So 02.03.14 22:21
Hallo
Es wäre interessant wenn man man pro Region nicht nur eine Zahl sehen würde, sondern in ein Detailfenster verzeigen könnte das die Feiertag auflistet.
Ich war jedenfalls recht erstaunt, dass der Kanton Zürich (Arbeitsort) nur 2 Feiertage weniger hat als der Kanton Luzern (Wohnort). Gefühlt sind das eindeutig mehr... :shock:
Gruss Bole
Mathematiker - So 02.03.14 22:54
Hallo,
bole hat folgendes geschrieben : |
Es wäre interessant wenn man man pro Region nicht nur eine Zahl sehen würde, sondern in ein Detailfenster verzeigen könnte das die Feiertag auflistet. |
Danke für den Hinweis. Ich werde mal sehen, wann ich dazu komme, das zu erweitern.
bole hat folgendes geschrieben : |
Ich war jedenfalls recht erstaunt, dass der Kanton Zürich (Arbeitsort) nur 2 Feiertage weniger hat als der Kanton Luzern (Wohnort). Gefühlt sind das eindeutig mehr... :shock: |
Nach der offiziellen Liste sind
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| 1. Kanton Zürich – Neujahrstag, 1. Januar – Berchtoldstag, 2. Januar – Karfreitag – Ostermontag – Tag der Arbeit, 1. Mai – Auffahrt – Pfingstmontag – Weihnachtstag, 25. Dezember – Stephanstag, 26. Dezember 3. Kanton Luzern – Neujahrstag, 1. Januar – Berchtoldstag, 2. Januar – Karfreitag – Ostermontag – Auffahrt – Pfingstmontag – Fronleichnam – Mariä Himmelfahrt, 15. August – Allerheiligen, 1. November – Mariä Empfängnis, 8. Dezember – Weihnachtstag, 25. Dezember – Stephanstag, 26. Dezember |
Feiertage. Das sind für Luzern der Fronleichnam, 15.8., 1.11. und 8.12. mehr. Dafür hat Zürich den 1.Mai. Und da 2014 der 1.11. Sonnabend ist, sind es nur 2 Feiertage Differenz.
Sei froh, dass Du nicht in Graubünden arbeitest. Die haben 2014 nur 8 Feiertage in der Woche. :wink:
Beste Grüße
Mathematiker
Mathematiker - Mo 03.03.14 20:24
Hallo,
bole hat folgendes geschrieben : |
Es wäre interessant wenn man man pro Region nicht nur eine Zahl sehen würde, sondern in ein Detailfenster verzeigen könnte das die Feiertag auflistet. |
Deinen Wunsch habe ich soeben umgesetzt (Edit 7).
Wählst Du in der linken Liste einen Eintrag (Bundesland, Kanton, Österreich oder Liechtenstein) aus, so wird rechts eine vollständige Liste der Feiertage im gewählten Zeitraum angezeigt, inkl. der Feiertage, die auf das Wochenende fallen.
Beste Grüße
Mathematiker
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!