3 Montag im Januar auslesen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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")

    Comment


    • #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]));
      Last edited by galaxy2; 23-01-2006, 14:20.

      Comment


      • #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.

        Comment

        Working...
        X