Ankündigung

Einklappen
Keine Ankündigung bisher.

Anzahl von Sonntagen pro Monat bestimmen

Einklappen

Neue Werbung 2019

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

  • Anzahl von Sonntagen pro Monat bestimmen

    Hallo,

    Übergeben werd ich als Datum den Monat und das Jahr.
    Nun suche ich eine Funktion, die mir die Sonntage pro Monat zurückgibt.

    Kann mir da jemand weiterhelfen?

    MFG

  • #2
    Könnte dir weiterhelfen: http://de.php.net/manual/en/function.getdate.php

    Kommentar


    • #3
      Ich muss da irgendwie was mit date() machen...
      date (t) anzahl der Tage pro Monat
      und dann?

      Kommentar


      • #4
        http://de.php.net/manual/en/function.date.php

        Zitat von php.net
        Here's a function that takes the year as input and returns an array or dates that are mondays. (It can be used for generating weekly reports just like I did)

        PHP-Code:
        <?php
        function getMondays($year) {
          
        $newyear $year;
          
        $week 0;
          
        $day 0;
          
        $mo 1;
          
        $mondays = array();
          
        $i 1;
          while (
        $week != 1) {
           
        $day++;
           
        $week date("w"mktime(000$mo,$day$year));
          }
          
        array_push($mondays,date("r"mktime(000$mo,$day$year)));
          while (
        $newyear == $year) {
           
        $test =  strtotime(date("r"mktime(000$mo,$day$year)) . "+" $i " week");
           
        $i++;
           if (
        $year == date("Y",$test)) {
             
        array_push($mondays,date("r"$test));
           }
           
        $newyear date("Y",$test);
          }
          return 
        $mondays;
        }

        ?>
        dular
        sollte dir helfen oder ???

        Kommentar


        • #5
          Sieht ja ganz gut aus !!!

          Aber wenn ich die Function ausführe,
          die Variable $year mit 2006 vorher fülle
          und am Ende mit echo $mondays ausgebe,

          passiert nichts?!?

          Kommentar


          • #6
            Zitat von Cheesy
            Sieht ja ganz gut aus !!!

            Aber wenn ich die Function ausführe,
            die Variable $year mit 2006 vorher fülle
            und am Ende mit echo $mondays ausgebe,

            passiert nichts?!?
            Ein geschulter Blick in die Funktion würde erkennen das dort ein Array gefüllt und zurück gegeben wird und der Befehl zur Ausgabe des Ergebnis wie folgt lauten müsste:

            Code:
            echo "<pre>" . print_r($mondays, true) . "</pre>";

            Kommentar


            • #7
              Funktioniert aber auch nicht!

              Kommentar


              • #8
                Code:
                Schleife ersterTag bis LetzterTag
                  Wenn Sonntag erhöhe zähler
                Ende

                Kommentar


                • #9
                  Danke schön

                  Kommentar


                  • #10
                    Zitat von Cheesy
                    Funktioniert aber auch nicht!
                    Müssen wir uns wirklich auf so einem Niveau bewegen?

                    Wenn etwas nicht funktioniert, dann poste doch einfach deinen Versuch und deine Vermutungen dazu, dann kommen wir auch schneller zu einem Ergebnis. Alles andere ist Kindergarten (nix für ungut)!

                    Außerdem wär's schön, wenn du dein Ergebnis dann auch hier postest, damit jemand mit dem gleichen Problem nicht den Thread durchlesen muss, um am Ende festzustellen, dass der Startposter die Lösung gefunden hat, sie aber für sich behalten hat..

                    Kommentar


                    • #11
                      nur mal so ganz nebenbei ich habs grad getestet mit der Funktion so wie es oben steht und diesen Code

                      Code:
                      $mondays = getMondays(2007);
                      echo "<pre>" . print_r($mondays, true) . "</pre>";
                      und das erzeugt eine Ausgabe die etwa so aussieht:
                      Array
                      (
                      [0] => Mon, 01 Jan 2007 00:00:00 +0100
                      [1] => Mon, 15 Jan 2007 00:00:00 +0100
                      [2] => Mon, 22 Jan 2007 00:00:00 +0100
                      [3] => Mon, 29 Jan 2007 00:00:00 +0100
                      [4] => Mon, 05 Feb 2007 00:00:00 +0100
                      ...
                      es funktioniert also problemlos....

                      Kommentar


                      • #12
                        muss man da nich nur ne whileschleife machen? Z.B: so?

                        PHP-Code:
                        function sundayproof($month$year){

                        $timetoproof mktime(0,0,0,$month,1,$year);
                        $counter 0;
                        $limit 1;
                        while(
                        $limit <= 31){ // Läuft 31 mal durch und nimmt einen tag mehr...
                           
                        if(date(D$timetoproof) == "Sun"){ // und prüft auf Sunday
                              
                        $counter++; // macht dann den counter einen mehr
                           
                        }
                           
                        $limit++;
                           
                        $timetoproof $timetoproof 86400// Tag in Sekunden
                        }

                        return 
                        $counter;
                        }

                        $AnzahlDerSonntage sundayproof(082006); 
                        Oder stelle ich mir das wieder zu einfach vor.
                        MFG RBS_Phoenix

                        edit: Habs mal getestet unnd bei mir funktinoiert es

                        Kommentar


                        • #13
                          Du gehst also davon aus das jeder Monat 31 Tage hat?

                          Deine While ist so wie se da steht nix anderes als ne For

                          Kommentar


                          • #14
                            Ich mein mehr als die Lösung posten kann ich auch nicht ..

                            Meist schreib ich schon dazu das man bitte auch die USER Kommentare mit lesen soll die auf php.net stehen weil dort meist schon die Lösung steht. Und wenn ich's dann shcon raussuche .. und gleich mit hin poste .. und dann soeine Antwort kommt ..

                            *hmpf*

                            Und vorallem am Ende nach all den Bemühungen die sich hier einige machen kein DANKE oder Ey, ICH HAB DIE LÖSUNG.. UND DIE SIEHT SO AUS : ... *blablubb* kommt frage ich mich ob das so der richtige Weg ist und ob solche Leute eigentlich nur an sich denken ...




                            Kommentar


                            • #15
                              @HStev: gehe vom maximalem aus. weil wenn ein Monat nur 30 oder 28 tage hat, macht date n false oder error bzw irgendwas, bloß kein string "Sun" und erfüllt somit nicht die if-abfrage. Wenn du willst, kannst du ja sowas schreiben:
                              if(@date(D, $timetoproof) == "Sun"){

                              Ansonsten denke ich soll Cheesy sich mal wieder melden, ob er was funktionierendes schon hat oder wie es überhaupt damit aussieht.

                              Kommentar

                              Lädt...
                              X