Zum Inhalt springen

Oracle: Berechnung der Arbeitstage/Monat


Olli_Master

Empfohlene Beiträge

Hi leute,

ich hoffe ihr könnt mir helfen.

:confused:

Ich arbeite gerade an einer Auswertung für eine Oracle Anwendung. Es geht um die Berechnung der Auslastung von Dienstfahrzeuge.

Ich habe die Anzahl der Einsatztage im Monat und möchte nun den prozentualen Anteil der Einsatztage im Verhältnis zu den Arbeitstagen im Monat ermitteln.

Und genau da liegt das Problem.

Die Berechnung ist einfach aber... Wie bekomme ich (ggf. dynamisch) die Anzahl der Arbeitstage in einem bestimmten Monat heraus.

Beispiel:

Im Januar 2002 sind es 31 Tage minus die Wochenenden sind es 23 und dann noch Neujahr als Feiertag abgezogen sind es endgültig 22.

Das möchte ich nun aber für alle Monate des Jahres 2002, 2003 usw. machen.

---

Eine Idee wäre es ja auch die Daten in Tabellenform zu hinterlegen:


Monat     Jahr      Arbeitstage

-------------------------------

01        2002        22

..

12        2010        ??

Gibt es ein Progrämmchen was einen die Feiertage ausrechnen kann - Outlook vielleicht?

Alles muss am Ende in Oracle laufen. Außerdem möchte ich nicht unbedingt was eigenes dafür programmieren, sondern auf etwas bestehendes zurückgreifen.. (sowas muss es doch schon irgendwo geben, oder?)

Ein guter Tipp wäre vielleicht schon hilfreich...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

die Berechnung ist leider gar nicht so einfach.

Außerdem hängt die Anzahl der Arbeitstage auch noch vom Bundesland ab.

Die meisten beweglichen Feiertage orientieren sich an Ostern. Nur Buß und Bettag hängt vom Wochentag des Heiligabends ab.

Folgende Funktion berechnet den Offset der Feiertage zu Ostern:

Die komplette Berechnung kann ich leider nicht posten, da wir hier eigene Klassen für Calendar und Date haben und dir der Code somit nichts bringen würde. (Das ganze ist übrigens in Java, von Oracle habe ich in der hinsicht keine Ahnung.)

Gruß Jaraz

-----------------------------------------------------------------------

 /**

   * Funktion offset:

   * <p>Berechnung des Offsets von beweglichen Feiertagen,

   * die von Ostern abhängen. Funktionstüchtigkeit

   * nur bis zum Jahr 8202 !

   * Ergebnis Beispiele:

   * <br>Rosenmontag: Tage ab dem 2. bzw. (bei Schaltjahren) 3. Februar

   * <br>Ostersonntag: Tage ab dem 22. März

   * <br>Christi Himmelfahrt: Tage ab dem 30. April

   * <br>Pfingstsonntag: Tage ab dem 10. Mai

   * <br>Fronleichnam: Tage ab dem 21. Mai

   *

   * @param j

   * @return int offset

   */

  static int offset (int j) {                   // Ergebnisbereich: 0..34

    int a = j%19;               // Position im Mentonischen Zyklus

    int b = j%4;

    int c = j%7;

    int m = (8*(j/100) + 13)/25 - 2;

    int s = j/100 - j/400 - 2;

    int mm = (15 + s - m)%30;

    int n = (6 + s)%7;

    int d = (mm + 19*a)%30;

    int dd = (d == 29) ? 28 : (d == 28 && a >= 11) ? 27 : d;

    return  dd + ((2*b + 4*c + 6*dd + n)%7);

  }

Link zu diesem Kommentar
Auf anderen Seiten teilen

Klingt ja ganz schön kompliziert.

Ich wollte eigentlich nichts kompliziertes mehr in das System reinpacken (es ist schon kompliziert genug).

Bisher habe ich eine SQL-Abfrage die die Anzahl der Tage deren Wochentag IN (Montag,Dienstag,Mittwoch, Donnerstag, Freitag) ist. Das ist schon mal nicht schlecht.

Normalerweise ist es so, dass ein Unternehmen einen eigenen "Holiday-Calender" pflegt, bei uns ist das allerdings ist anders.

Ich möchte eigentlich die Berechnung für die Feiertage nicht neu erfinden - mir würde eine Liste der Feiertage (am besten für Thüringen) schon genügen.

Die müsste dann aber schon für einige Jahre im Voraus sein...

---------

Übrigens ab Oracle 8i gibts den Oracle JServer + eine komplette Java-Entwicklungsumgebung. Es wäre also nicht großartig schwierig bestehende Java-Klassen zu adaptieren :-)

Danke trotzdem.

Hat sonst noch jemand ne Idee?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Olli_Master

Die müsste dann aber schon für einige Jahre im Voraus sein...

Genau da liegt das Problem. Und ich glaube Thüringen ist das einzige Bundesland in dem auch noch der Buß und Bettag frei ist.

Berichtige mich falls das nicht stimmt. :D

Original geschrieben von Olli_Master

Übrigens ab Oracle 8i gibts den Oracle JServer + eine komplette Java-Entwicklungsumgebung. Es wäre also nicht großartig schwierig bestehende Java-Klassen zu adaptieren :-)

Erstens müsstes du dann das komplette Framework entfernen,

und zweitens würde ich sehr wahrscheinlich ärger vom Chef bekommen. :rolleyes:

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaube du hast recht mit dem Feiertag.

--

Aber wenn - dann geht es nicht 100%tig um jeden Feiertag sondern nur die wichtigen (Ostern, Pfingsten Weihnachten, Neujahr usw.)

Erstens müsstes du dann das komplette Framework entfernen...

Das war natürlich nicht ernst gemeint - außerdem möchte ich nicht dass du wegen mir Ärger bekommst. Und ich möchte auch keinen eigenen Kalender implementieren.

Ich wollte nur sagen, dass so was geht, weil es sich so angehört hat als ob Oracle und Java nicht zusammenpassen würden, ok?

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Olli_Master

Ich wollte nur sagen, dass so was geht, weil es sich so angehört hat als ob Oracle und Java nicht zusammenpassen würden, ok?

Dann habe ich das falsch verstanden. Das Oracle und Java zusammenarbeiten ist mir allerdings schon klar. :D

Hier findest du ne Access Datenbank mit allen möglichen Tabellen.

Unter anderem auch mit den Feiertagen bis 2032 für alle Bundesländer. http://www.topsolutions.de/media/download/KnowHow.exe

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...