3 Montag im Januar auslesen

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

  • 3 Montag im Januar auslesen

    Hallo, hab mich mal daran versucht, Feiertage der USA auszulesen.

    Nur eine Frage: Gibt es eine andere Möglichkeit, jedes Jahr den 3 Montag des Januars auszulesen? Der Folgende Code funzt, wird aber recht schnell unübersichtlich:

    PHP-Code:
    for ($year 2006$year 2015$year ++)
    {
     for (
    $month $month <= 12$month++)
     {
      
    $x_monday 1;

      for (
    $day 1$day <= 31$day ++)
      {

       if (
    date("l",mktime(000$month$day$year)) == "Monday")
       {

        if (
    $x_monday == $month == 1)
        {
        
    $monday date("d-m-Y",mktime(000$month$day$year));
        echo 
    "monday ".$monday."<br>";
        }
        
    $x_monday++;
       }


      }

     }

    Danke für Tipps

  • #2
    Hier in den User Contributed Notes (Suche nach "Martin Luther King")

    Kommentar


    • #3
      Danke war genau das was ich gesucht habe.


      Noch eine Frage. Ist denk ich recht einfach, jedoch erziele ich nicht die Lösung, welche ich eigentlich möchte.

      PHP-Code:
      function getHolidays($year)
       {
         
      //$return = array();

         // sime dates which need no calculation
         
      $return[] = array($year '-01-01','New Year`s Day');
         
      $return[] = array($year '-02-14','Valentine`s Day');
         
      $return[] = array($year '-06-14','Flag Day');
         
      $return[] = array($year '-07-04','Independence Day');
         
      $return[] = array($year '-11-11','Veteran`s Day');
         
      $return[] = array($year '-12-25','Christmas');

      wird hier aufgerufen
      PHP-Code:
      include("./feiertage_us.php");

      $year date("Y");
      for(
      $x $year-1;$x <= $year+1;$x++)
      {
       
      $holidays_array[] = getHolidays($x);
      }
      echo 
      "<pre>";
      print_r($holidays_array);
      echo 
      "</pre>"
      Das Ergebnis sieht dann folgendermassen aus:
      PHP-Code:
      [0] => Array
              (
                  [
      0] => Array
                      (
                          [
      0] => 2005-01-01
                          
      [1] => New Year`s Day
                      )
               .....

                  [5] => Array
                      (
                          [0] => 2005-12-25
                          [1] => Christmas
                      )

      [1] => Array
              (
                  [0] => Array
                      (
                          [0] => 2006-01-01
                          [1] => New Year
      `s Day
                      

      ich möchte aber das er mir ein Array erzeugt, welches nicht die überelemente der Jahre hat. Es sollen einfach alle Feiertage für die 3 Jahre durchnummeriert in einem Array folgendermassen abgelgt werden:
      PHP-Code:
                 [0] => Array
                      (
                          [
      0] => 2005-01-01
                          
      [1] => New Year`s Day
                      )

                  [1] => Array
                      (
                          [0] => 2005-02-14
                          [1] => Valentine
      `s Day 
      also ohne die Zischenstuffe. Hab mich schon an den verschiedenen Klammern versucht, jedoch finde ich diesen Fehler nicht.

      Hab gerade einen Workarround gefunden, jedoch muss das hier doch auch direkt lösbar sein.

      Workarround:
      PHP-Code:
      <?php
      include("./feiertage_us.php");
      $year date("Y");
      for(
      $x $year-1;$x <= $year+1;$x++)
      {
       
      $holidays_array[] = getHolidays($x);
      }

      $holiday array_merge($holidays_array[0],array_merge($holidays_array[1],$holidays_array[2]));
      Zuletzt geändert von galaxy2; 23.01.2006, 14:20.

      Kommentar


      • #4
        getHolidays() is bissl komisch. Die hat ja garkein return $return; oder seh ich das falsch? Haste was vergessen?

        Mach das doch lieber so:

        PHP-Code:
        <?php
        function getHolidays(&$arr$year)
        {
           
        $arr[] = array($year '-01-01''New Year`s Day');
           
        $arr[] = array($year '-02-14''Valentine`s Day');
           
        $arr[] = array($year '-06-14''Flag Day');
           
        $arr[] = array($year '-07-04''Independence Day');
           
        $arr[] = array($year '-11-11''Veteran`s Day');
           
        $arr[] = array($year '-12-25''Christmas');
        }

        $year date("Y");
        $arr_hol = array();
        for (
        $x $year 1$x <= $year 1$x++) {
            
        getHolidays($arr_hol$x);
        }

        echo 
        "<pre>";
        print_r($arr_hol);
        echo 
        "</pre>";
        ?>
        Gruß,
        Flo.

        Kommentar

        Lädt...
        X