Werktagsberechnung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Werktagsberechnung

    Hallo,

    ich bin auf der Suche nach einem Codeschnipsel, der es mir ermöglicht, die Anzahl der Werktage zwischen 2 Daten("Datums") zu berechnen.

    Gegeben sind 2 MySQL Date-Felder und ich würde gerne die Differenz zwischen Datum1 und Datum2 in Werktagen berechnen. Evtl. Feiertage sind dabei erstmal nicht so wichtig.

    Also los: Die einfachste Lösung gewinnt

    Gruß

    Marco

  • #2
    Wie wäre es denn mit den Datumsfunktionen von MySQL

    Wie z.B DATEDIFF ... Die 2 WE Tage wirst du wohl selbst abziehen können
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      Re: Werktagsberechnung

      Original geschrieben von Marco1974
      Hallo,

      ich bin auf der Suche nach einem Codeschnipsel, der es mir ermöglicht, die Anzahl der Werktage zwischen 2 Daten("Datums") zu berechnen.

      Gegeben sind 2 MySQL Date-Felder und ich würde gerne die Differenz zwischen Datum1 und Datum2 in Werktagen berechnen. Evtl. Feiertage sind dabei erstmal nicht so wichtig.

      Also los: Die einfachste Lösung gewinnt

      Gruß

      Marco
      Hmmmm,

      wenn ich beispielsweise die Differenz vom 20.09.2006 und dem 18.09.2006 berechnen möchte, dürfte Dir recht schnell klar werden, dass die Lösung nicht wirklich das Gelbe vom Ei ist

      Kommentar


      • #4
        Und wieso nicht?

        Kommentar


        • #5
          Original geschrieben von Trashar
          Und wieso nicht?
          Weil ich nicht weiß, wie viele Wochenenden zwischen den Daten liegen.

          Kommentar


          • #6
            Aso, denkfehler meinerseits..
            dann ein denkanstoß per php

            wochentag von datum A und Wochentag von Datum B
            Dann die anzahl der wochen die zwischen der beiden Daten liegt..

            Die sachen kann man alles per Date() rausbekommen (sofern es innerhalb eines jahres liegt, sonst halt mit anderen mitteln)

            beispiel:

            01.09.06 => wochentag => Fr => 5 (date('w'))
            20.09.06 => wochentag => Mi => 3
            wochen: date('W', größeres Datum - kleineres Datum) => 3
            Tage: date('z', größeres Datum - kleineres Datum) => 20
            wenn Wochentag_StartDatum > Wochentag_EndDatum dann Werktage = 20 - (wochen * 2) => 14 Tage

            und wenn umgekehrt dann zieh von den Wochen einen Ab..

            Habs mal eben so im Kopf "durchgerechnet", da funzte es..

            kurz php code, aber ungetestet, da ich auf der arbeit bin:
            PHP-Code:
            $startdatum mktime(0,0,0,9,1,2006);
            $enddatum mktime(0,0,0,9,20,2006);

            $start_wday date('w',$startdatum);
            $end_wday date('w',$enddatum);

            $weeks date('W',$enddatum $startdatum);
            $days date('z',$enddatum $startdatum);

            if(
            $start_wday $end_wday) { 
              
            $w_days $days - ($weeks 2);
            }
            else 
            $w_days $days - (($weeks 1) * 2); 
            natürlich ungetestet und wie gesagt über die date funktion auch nur zuständig wenn der unterschied nicht über ein Jahr beträgt.

            Hoffentlich der php code ist besser als die dazugehörige erklärung!

            Kommentar


            • #7
              Das klingt schon besser

              Danke auf jeden Fall für Deinen "Trockenkurs" - werd's gleich mal testen und Feedback geben. Wobei unseren Personaltanten gerade eingefallen ist, dass sie nun doch ganz gerne noch die Differenz um Wochenenden UND Feiertage bereinigt hätten... (erinnert mich gerade an die Geschichte mit dem kleinen Finger und der ganzen Hand...)

              Kommentar


              • #8
                tja das wird schwieriger.. dann brauchst halt eine tabelle mit den feiertagen und das datum.... einfach nen count mit den feiertagen anhand des start und end datums limitieren..

                wird aber schön komplex bei feiertagen die rotieren (ostern etc)

                MfG

                Kommentar

                Lädt...
                X