Announcement

Collapse
No announcement yet.

Werktage berechnen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Werktage berechnen

    Hallo zusammen,

    ich möchte in einer Firebird-Prozedur die Anzahl der Werktage zwischen zwei Datumswerten errechnen. Ich würde dafür die FreeAdhocUDFs verweden.

    Bei meinen Überlegungen bin ich nun auf eine mögliche Lösung gekommen. Nun wollte ich aber zunächst fragen, ob vielleicht jemand noch eine einfachere Variante kennt.

    Ich würde zunächst mit der Funktion F_DAYSBETWEEN die Anzahl der Tage zwischen meinen beiden Datumswerten errechnen. Um nun aber auf die Werktage zu kommen würde ich über die Funktion F_COUNTWEEKDAYS die Anzahl der Samtage und Sonntage in dem Zeitraum errechnen und vom ersten Ergebnis abziehen. Schließlich würde ich noch anhand einer Tabelle mit allen Feiertagen bis 2035 die Feiertage herausrechnen.

    Ist dies der Pfad der Weisheit?
    Gruß Heiner
    ____________________________________
    Firebird 2.0

  • #2
    wenn du eine Tabelle mit den Feiertagen hast, warum macht du dann nicht alternativ eine Tabelle mit den Werktagen. sind zwar ein paar mehr, ist aber auch bei 100 Jahren mit ca. 36500 Datensätzen recht überschaubar. Nennt man üblicherweise auch Werkskalender. Mit einem select count .... where ... between ...... hast du dann immer die anzahl der Tage und kannst ggf über weitere attribute noch festlegen, für welches Bundesland das ein Feiertag ist, falls notwendig.


    Gruß
    Holger
    www.ibexpert.com

    Comment


    • #3
      Gibt es diese Daten schon irgendwo fertig oder muss ich mir die selbst berechnen?
      Gruß Heiner
      ____________________________________
      Firebird 2.0

      Comment


      • #4
        Hallo Klemmo,

        ich habe mir die Daten schon erzeugt - Excel machts möglich ;-)
        Gruß Heiner
        ____________________________________
        Firebird 2.0

        Comment


        • #5
          Hallo,

          wenn Du das so machst, musst Du aber bei den Feiertagen noch abfragen, ob Sie nicht zufällig auf einen Samstag oder Sonntag fallen oder wie dieses
          Jahr zwei auf ein Datum, dass Du sie nicht doppelt abziehst.
          Wenn die Zeiträume nicht zu lang sind kannst Du auch die Tage einzeln betrachten. Erst Wochentag bestimmen, wenn kein Samstag oder Sonntag, dann suchen ob Feiertag, wenn nein, dann Anzahl Werktage hochzählen.

          Feiertagstabellen findest Du bestimmt im Internet. Eleganter ist natürlich eine Prozedur, die anhand des Datums die beweglichen Feiertage direkt berechnet. Die gibt es bestimmt auch schon fertig.


          Gruß frauwue
          docendo discimus

          Comment


          • #6
            Hi,

            das habe ich natürlich berücksichtigt. Tage, die Wochenende und Feiertag sind, habe ich aus der Tabelle gelöscht - dann können sie nicht mitgezählt werden.
            Gruß Heiner
            ____________________________________
            Firebird 2.0

            Comment

            Working...
            X