Überstunden berechnen

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

  • Überstunden berechnen

    Hallo

    Zur Verdeutlichung erst mal eine kurze Tabelle:

    Anfang Ende Gesamt Gesamt vor 6 nach 20
    1 05:30 16:45 11:15 11:15 00:30 00:00
    2 06:00 14:00 08:00 19:15 00:00 00:00
    3 05:00 22:00 17:00 36:15 01:00 02:00
    ...

    Gesamt 36:15 01:30 02:00

    Hat jemand eine Idee, wie man so etwas machen kann.

    Stehe im Moment ziemlich aufm Schlauch - habe schon fast zwei Jahre lang nicht mehr programmiert.

    Webbi
    >>>> Erst denken, dann suchen, dann fragen <<<<

  • #2
    mit einer stored procedure in einer datenbank zb....

    Kommentar


    • #3
      Könntest du auch eine konkrete Frage stellen, die man dann auch beantworten kann?

      Ansonsten kann ich auch einfach mal "Mit nem Query" in den Raum werfen, mit der Sicherheit, dass dir das irgendwie hilft...

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Hi

        Hatte gedacht, dass es verständlich ist.

        Also ich möchte über jeden Monat eine Auswertung und Brechnung der Überstunden mit Zuschlagsberechung.

        - Das heisst tägl. x Stunden.
        - Gesamtstunden / -minuten ausrechnen z.B.: 178:30 Std:Min
        - Zuschlagsberechnung bei Nachtarbeit bzw. ab einer Anzahl von x
        Überstunden (zwei Stufen ab 173 und 191)

        Beispiel:
        Ich arbeite am 28.ten Tag im August von 05:30 bis 21:00 Uhr.
        Das heisst ich arbeite an diesem Tag 15:30 Stunden.
        Davon habe ich eine halbe Stunde vor 6 Uhr gearbeitet und eine Stunde nach 20:00 Uhr - Somit habe ich 1:30 in der Nacht gearbeitet.
        Dazu kommt, dass ich mit diesem (28ten) Tag über die 173 Stundengrenze komme. Von den 15:30 müssen 12:00 Stunden bis zur ersten Grenze berechnet werden und die restlichen Stunden müssen der ersten Stufe (ab 173) zugerechnet werden. Die Stunden für die Stufen müssen dann natürlich auch noch dem Tag bzw. der Nacht zugeordnet werden.

        Ich werde versuchen, dass ich die Datei noch hochade. Ist eine Exceldatei - werde ich als PDF exportieren.

        Webbi

        PS: Ich hoffe, dass ich es Euch ein wenig besser erläutern konnte.
        >>>> Erst denken, dann suchen, dann fragen <<<<

        Kommentar


        • #5
          Daten auslesen, Berechnungen durchführen, alles wieder ausgeben.

          Das geht von der Theorie her sogar komplett in Excel...

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Hallo

            Habe ich mir ja auch gedacht. Allerdings wüsste ich nicht wie! Mit time und date usw. gehts auf jedenfall nicht, da man keine Stunden bzw. Minuten ausrechnen kann, die über 24 Std. bzw. 60 Min. gehen (z.B. Std:Min = 175:45).

            Daher wäre es nicht schlecht, wenn Ihr mir nen kleinen Ansatz zeigen könntet. Steh im Moment ein wenig aufm Schlauch.

            Webbi
            >>>> Erst denken, dann suchen, dann fragen <<<<

            Kommentar


            • #7
              Da musst du dich schon selbst zum Beispiel in die Excel-Hilfe einlesen. Was anderes würde ich auch nicht tun.

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                Hm was nun Excel oder PHP?


                Achja, was du auch beachten musst, wird Nachtarbeit, wenn man in den Überstunden ist, dopptelt berechnet? Also Zuschlag Nachtarbeit und Zuschlag Überstunden? Gibt es dafür einen festen Satz oder Prozente? Wenn es Porzente gibt, werden sie beim aufrechnen beite auf den eigentlichen Stunden Lohn unabhängig voneinader addiert oder nacheinander?

                Kommentar


                • #9
                  Original geschrieben von Webbi
                  Mit time und date usw. gehts auf jedenfall nicht, da man keine Stunden bzw. Minuten ausrechnen kann, die über 24 Std. bzw. 60 Min. gehen (z.B. Std:Min = 175:45).
                  ich behaupte mal völlig übermütig und großkotzig, dass es mit time(), date() und den anderen dir von php zur verfügung gestellten Datums- und Zeitfunktionen möglich ist

                  * naja, vielleicht kommt noch ein wenig mathe hinzu
                  **********
                  arkos
                  **********

                  Kommentar


                  • #10
                    Original geschrieben von arkos
                    ich behaupte mal völlig übermütig und großkotzig, dass es mit time(), date() und den anderen dir von php zur verfügung gestellten Datums- und Zeitfunktionen möglich ist
                    Natürlich ist es das, er hat aber von Excel gesprochen. Dort ist es allerdings auch möglich (Format [h].mm)
                    Gruss
                    H2O

                    Kommentar


                    • #11
                      wollte doch nur diese aussage mit "GEHT NICHT" entkräften

                      mag sicher sein, dass es mit excel geht. aber ich kann excel doch nicht
                      **********
                      arkos
                      **********

                      Kommentar


                      • #12
                        Hallo Leute

                        Vielen Dank für die rege Beteiligung.

                        Programmierung soll schon in PHP sein. Mit Excel war nur die Tabelle gemeint, die hier ausgedruckt wird und per Hand ausgefüllt wird. Ist in der heutigen Zeit wohl nicht mehr vernünftig.

                        Habe mal bei den Datums- und Zeitfunktion geschaut. Dort allerdings nichts gefunden, was mir die Stunden in Summe zusammenrechnet.

                        Anbei mal die EXCEL-Tabelle

                        Vielen Dank schon mal für die Hilfe.

                        Webbi
                        Angehängte Dateien
                        >>>> Erst denken, dann suchen, dann fragen <<<<

                        Kommentar


                        • #13
                          Da es ja um reine Zeit-Berechnungen, ohne Datum oder so, geht, ist es nicht mal nötig, die Datumsfunktionen zu bemühen. Hier einfach ein paar Funktionen zur Anregung:
                          PHP-Code:
                          function get_min($zeit){    // Zeit in Minuten umwandeln
                              
                          if(preg_match('/^(\d{1,2}):\d{1,2}:\d{1,2}$/'$zeit)){ // mit Sekunden
                                  
                          $s explode(':'$zeit);
                                  return (
                          $s[0] * 60) + $s[1] + ($s[2] / 600 10);
                              }
                              elseif(
                          preg_match('/^(\d{1,2}):\d{1,2}$/'$zeit)){        // Ohne Sekunden
                                  
                          $s explode(':'$zeit);
                                  return (
                          $s[0] * 60) + $s[1];
                              }
                              else{
                                  return 
                          false;
                              }
                          }

                          function 
                          get_stdMin($min$sec=false){    // Minuten in Zeit umwandeln
                              
                          if($sec){                    // Stunden:Minuten:Sekunden
                                  
                          return sprintf("%02d:%02d:%02d"floor(floor($min) / 60), floor($min) % 60, ($min floor($min)) / 10 600);
                              }
                              else{                        
                          // Stunden:Minuten
                                  
                          return sprintf("%02d:%02d"floor(floor($min) / 60), floor($min) % 60);
                              }
                          }

                          function 
                          zDiff($zeit1$zeit2){  
                          // Differnz zwischen zwei Zeiten
                              
                          return get_stdMin(get_min($zeit1) - get_min($zeit2));

                          Gruss
                          H2O

                          Kommentar

                          Lädt...
                          X