Zeitspannenberechnung

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

  • Zeitspannenberechnung

    Hallo,

    ich habe folgendes Problem und ich hoffe Ihr könnt mir weiterhelfen.

    Ich habe ein Programm geschrieben was die gesamte Arbeitszeiten einer Person im Monat berechnet.
    z.B. ein Arbeitnehmer hat an einem Tag eine Arbeitszeit von 21:45 - 06:15
    Die Berechnung der Arbeitszeiten erfolgt täglich.
    Dazu habe ich folgendes geschrieben (ist nur ein Teil davon)

    $ist=0;
    $zvon = $satz['zeitvon'];
    $zbis = $satz['zeitbis'];

    IF ($zvon && $zbis)
    {
    IF ($zvon < $zbis) $ist= $zbis - $zvon;
    else $ist= $zbis +24*60*60 - $zvon;
    }

    Das funktioniert reibungslos. Die gesamte Arbeitszeit beträgt also 08:30. Ich wandle die o.g. Zeiten vorher in Sekunden um und nach der Berechnung wandle ich die Sekunden wieder im Time Format um. Auch das funkltioniert soweit reibungslos.

    So nun möchte ich die tatsächlichen Nachtstunden ausrechnen lassen, die vergütet werden. Dies ist in der Zeit von 20:00 bis 06:00 Uhr. Die Nachstunden wären dann quasi 08:15 anstatt der berechneten Gesamtarbeitszeit.

    Urpsünglich hatte ich dazu folgendes gedacht.
    $nacht=0;
    $nachtv=$satz['nachtvon']; //Sekunden von 20:00 Uhr
    $nachtb=$satz['nachtbis']; // Sekunden von 06:00 Uhr

    IF ($zvon && $zbis)
    {
    IF ($zvon > $zbis)
    {
    IF ($zvon >= $nachtv && $zbis <= $nachtb)
    {
    ab hier weiß ich nicht mehr weiter, denn
    $nacht = $zbis +20*60*60 -$zvon
    würde das Ergebnis bringen, wie oben.
    wie gesagt gesamte Arbeitszeit von 21:45 - 06:15
    Nachtstunden liegen jedoch zwischen 20:00 und 06:00 Uhr
    }
    }
    }

    Ich hoffe Ihr könnt mir ein paar Tipps geben. Ich danke Euch schon im vorraus
    Gruß Micha

  • #2
    Hi,

    die Daten holst du doch bestimmt aus einer Datenbank - oder? Ich würde dort den Rahmen für die Nachtarbeit und gleich den Zuschlagsfaktor hinterlegen. Dann kannst du das per SQL berechnen lassen.

    Ich habe das mal mit Zuschläge für Arebitszeiten an Sonn- oder Feiertage so gelöst.

    Kommentar

    Lädt...
    X