Feiertage

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

  • Feiertage

    Hey,

    wie mache ich es, dass ich das Aktuelle Datum (Kann ich selbst ) und daneben der Feitertag (fals vorhanden) von D,A,CH Angezeigt bekomme? Habe schon im Forum gesucht, aber nichts PAssendes Gefunden.

    MfG
    Goebel

  • #2
    du legst dir ein Array/ eine Textdatei/ eine Tabelle an, wo alle Feiertage gelistet sind, passt das Datum, gibst du den entsprechenden Feiertag aus!

    gruss

    Kommentar


    • #3
      Diese Listen sehen vielversprechend aus:
      http://www.dino-online.de/dino/Beruf...n_&_Feiertage/

      Kommentar


      • #4
        Hallo Timo,

        für D und A hätt ich da was:
        PHP-Code:
        function feiertag($sqldatum_oder_timestamp$land$region) {
        /*
        # land kann sein:
            ö - Österreich
            d - Deutschland
        # region kann sein:
            <leer> keine der unten Spezifizierten
            bawü - Baden-Würthenberg
            bay - Bayern
            bran - Brandenburg
            mepo - Mecklenburg-Vorpommern
            nrw - Nordrhein-Westfahlen
            rhpf - Rheinland-Pfalz
            saan - Sachsen-Anhalt
            saar - Saarland
            sax - Sachsen
            thr - Thüringen
            */
            
        if (!function_exists('easter_date')) {
                return 
        false;
            }
        //end if
            
        if (empty($sqldatum_oder_timestamp)) {
                
        $werktag time();
            } elseif (
        is_numeric($sqldatum_oder_timestamp)) {
                
        $werktag $sqldatum_oder_timestamp;
            } else {
                
        $werktag sqlzeit2timestamp($sqldatum_oder_timestamp);
            }
        //end if
                
        $os easter_date(date('Y'$werktag));
                
        $tag date('d',$os);
                
        $monat date('m',$os);
                
        $jahr date('Y',$os);
                
        #Statische Feiertage
            
        $arr = array(
            
        #Statische Feiertage
                
        mktime(0,0,011$jahr) => array('Neujahr' => array('ö','d')),
                
        mktime(0,0,016$jahr) => array('Heilige 3 Könige' => array('ö'),
                                                    
        'Erscheinungsfest' => array('d-bawü''d-saan''d-bay')),
                
        mktime(0,0,051$jahr) => array('Staatsfeiertag' => array('ö'),
                                                    
        'Tag der Arbeit' => array('d')),
                
        mktime(0,0,08,15$jahr) => array('Maria Himmelfahrt' => array('ö''d-saar''d-bay')),
                
        mktime(0,0,0,103$jahr) => array('Tag der dt. Einheit' => array('d')),
                
        mktime(0,0,0,10,26$jahr) => array('Nationalfeiertag' => array('ö')),
                
        mktime(0,0,0,10,31$jahr) => array('Reformationstag' => array('d-bran''d-mepo''d-sax''d-saan''d-thür')),
                
        mktime(0,0,0,111$jahr) => array('Allerheiligen' => array('ö''d-bawü''d-nrw''d-rhpf''d-saar''d-bay')),
                
        mktime(0,0,0,11,20$jahr) => array('Buß und Bettag' => array('d-sax')),
                
        mktime(0,0,0,128$jahr) => array('Maria Empfängnis' => array('ö')),
                
        mktime(0,0,0,12,25$jahr) => array('Christtag' => array('ö'),
                                                    
        '1. Weihnachtstag' => array('d')),
                
        mktime(0,0,0,12,26$jahr) => array('Stephanitag' => array('ö'),
                                                    
        '2. Weihnachtstag'  => array('d')),
            
        #Feiertage basierend auf Ostersonntag
                
        mktime(0,0,0,$monat,$tag-46,$jahr) => array('Aschermittwoch'=> array('ö')),
                
        mktime(0,0,0,$monat,$tag2,$jahr) => array('Karfreitag' => array('ö''d')),
                
        mktime(0,0,0,$monat,$tag,   $jahr) => array('Ostersonntag' => array('ö''d')),
                
        mktime(0,0,0,$monat,$tag1,$jahr) => array('Ostermontag' => array('ö''d')),
                
        mktime(0,0,0,$monat,$tag+39,$jahr) => array('Christi Himmelfahrt' => array('ö''d')),
                
        mktime(0,0,0,$monat,$tag+49,$jahr) => array('Pfingstsonntag' => array('ö''d')),
                
        mktime(0,0,0,$monat,$tag+50,$jahr) => array('Pfingstmontag'=> array('ö''d')),
                
        mktime(0,0,0,$monat,$tag+60,$jahr) => array('Fronleichnam' => array('ö, d-bawü, d-bay, d-nrw, d-rhpf, d-saar, d-sax, d-thür'))
            );
            if (
        $feiertag = @$arr[$werktag]) {
                foreach (
        $feiertag as $fname=>$wo) {
                    if (
        in_array($land$wo) || in_array($land.'-'.$region,    $wo)) {
                        return 
        $fname;
                    }
                }
            return 
        '';
            }
        }
        //end function 
        das einzige was für D noch fehlt ist der Buß- und Bettag.
        Grüße an alle und weiterhin frohes Arbeiten

        Kommentar


        • #5
          sorry Timo,

          da fehlt dann natürlich noch die function die aus dem SQL-Datum nen Timestamp macht.

          PHP-Code:
          function sqlzeit2timestamp($sqldatetime) {
          /*wandelt MySQL Zeit in Timestamp um*/
              
          if (is_numeric($sqldatetime)) {
                     return 
          $sqldatetime;
              }
              
          $sqlzeit explode(' '$sqldatetime);
              if (!empty(
          $sqlzeit[1])) {
                  
          $uhrzeit explode(':'$sqlzeit[1]);
                   
          # eine Uhrzeit
              
          } elseif (strstr($sqlzeit[0], ':')) {
                  
          $uhrzeit explode(':'$sqlzeit[0]);
                  
          $datum   explode('-'date('Y-m-d'));
                  
          # ein amerikanisches Datum
              
          } elseif (strstr($sqlzeit[0], '-'))    {
                  
          $uhrzeit explode(':'date('H:i:s'));
                  
          $datum   explode('-'$sqlzeit[0]);
                  
          # ein deutsches Datum
              
          } else {
                  
          $uhrzeit explode(':'date('H:i:s'));
                  
          $datum   explode('.'$sqlzeit[0]);
                  
          $tmp     $datum[0];
                  
          $datum[0] = $datum[2];
                  
          $datum[2] = $datum[1];
                  
          $datum[1] = tmp;
              }
          //end if
              
          return mktime($uhrzeit[0], $uhrzeit[1], 0$datum[1], $datum[2],$datum[0]);
          }
          //end function 
          Grüße an alle und weiterhin frohes Arbeiten

          Kommentar


          • #6
            Danke! Hat mir sehr geholfen!

            Gibt es sowas auch für die Schweiz??

            MfG
            Goebel

            Kommentar


            • #7
              Hey,
              möchte den Buss und Bettag berechnen!

              Der 1. Advent ist der Sonntag nach dem 26. November; der Buß- und Bettag liegt 11 Tage vor dem 1. Advent.
              Soweit so gut, aber wie berechne ich jetzt den 1. Sonntag nach dem 26. Nov??

              Goebel

              Kommentar


              • #8
                Hallo Timo,
                freut mich, dass ich Dir helfen konnte.

                Wie sind denn die Feiertage für die Schweiz?
                Buß- und Bettag kommt demnächst.
                Grüße an alle und weiterhin frohes Arbeiten

                Kommentar


                • #9
                  Habe des Script mit allen möglichen Tagen erweiter! (Sommerzeitumstellung,...) Hier der Code
                  PHP-Code:
                  <?php
                  function sqlzeit2timestamp($sqldatetime) {

                  /*wandelt MySQL Zeit in Timestamp um*/

                      
                  if (is_numeric($sqldatetime)) {

                             return 
                  $sqldatetime;

                      }

                      
                  $sqlzeit explode(' '$sqldatetime);

                      if (!empty(
                  $sqlzeit[1])) {

                          
                  $uhrzeit explode(':'$sqlzeit[1]);

                           
                  # eine Uhrzeit

                      
                  } elseif (strstr($sqlzeit[0], ':')) {

                          
                  $uhrzeit explode(':'$sqlzeit[0]);

                          
                  $datum   explode('-'date('Y-m-d'));

                          
                  # ein amerikanisches Datum

                      
                  } elseif (strstr($sqlzeit[0], '-'))    {

                          
                  $uhrzeit explode(':'date('H:i:s'));

                          
                  $datum   explode('-'$sqlzeit[0]);

                          
                  # ein deutsches Datum

                      
                  } else {

                          
                  $uhrzeit explode(':'date('H:i:s'));

                          
                  $datum   explode('.'$sqlzeit[0]);

                          
                  $tmp     $datum[0];

                          
                  $datum[0] = $datum[2];

                          
                  $datum[2] = $datum[1];

                          
                  $datum[1] = tmp;

                      }
                  //end if

                      
                  return mktime($uhrzeit[0], $uhrzeit[1], 0$datum[1], $datum[2],$datum[0]);

                  }
                  //end function


                  function feiertag($sqldatum_oder_timestamp$land$region) {

                  /*

                  # land kann sein:

                      ö - Österreich

                      d - Deutschland

                  # region kann sein:

                      <leer> keine der unten Spezifizierten

                      bawü - Baden-Würthenberg

                      bay - Bayern

                      bran - Brandenburg

                      mepo - Mecklenburg-Vorpommern

                      nrw - Nordrhein-Westfahlen

                      rhpf - Rheinland-Pfalz

                      saan - Sachsen-Anhalt

                      saar - Saarland

                      sax - Sachsen

                      thr - Thüringen

                      */



                      
                  if (!function_exists('easter_date')) {

                          return 
                  false;

                      }
                  //end if

                      
                  if (empty($sqldatum_oder_timestamp)) {

                          
                  $werktag time();

                      } elseif (
                  is_numeric($sqldatum_oder_timestamp)) {

                          
                  $werktag $sqldatum_oder_timestamp;

                      } else {

                          
                  $werktag sqlzeit2timestamp($sqldatum_oder_timestamp);

                      }
                  //end if
                      
                          
                          
                  $os easter_date(date("Y"$werktag));

                          
                  $tag date('d',$os);

                          
                  $monat date('m',$os);

                          
                  $jahr date('Y',$os);

                      
                  # Berechnen des 1. Advent, der 1. Advent ist der 1. Sonntag nach dem 26. November
                      
                  for($i=26;$i<=50;$i++) {
                          if(
                  $i==30) {
                          
                  $i=1;
                          
                  $month=12;
                          } elseif(
                  $month != 12$month=11;
                          if(
                  date ("w"mktime(0,0,0,$month,$i,$jahr)) == "0") {
                          
                  $firstadvent mktime(0,0,0,$month,$i,$jahr);
                          break;
                          }
                      }
                      
                  # Sommerzeitumstellung
                      
                  for($i=31;$i<=40;$i--) {
                          if(
                  date ("w"mktime(0,0,0,3,$i,$jahr)) == "0") {
                          
                  $summertime mktime(0,0,0,3,$i,$jahr);
                          break;
                          }
                      }
                      
                  # Winterzeitumstellung
                      
                  for($i=30;$i<=40;$i--) {
                          if(
                  date ("w"mktime(0,0,0,10,$i,date("Y"))) == "0") {
                          
                  $wintertime mktime(0,0,0,10,$i,date("Y"));
                          break;
                          }
                      }
                      
                  #Muttertag
                      
                  $l=0;
                      for(
                  $i=0;$i<=31;$i++) {
                          if(
                  date ("w"mktime(0,0,0,5,$i,date("Y"))) == "0"$l++;
                          if(
                  $l==2) {
                          
                  $mothersday mktime(0,0,0,5,$i,date("Y"));
                          break;
                          }
                      }




                      
                  $arr = array(

                      
                  #Statische Feiertage

                          
                  mktime(0,0,011$jahr) => array('Neujahr' => array('ö','d')),

                          
                  mktime(0,0,016$jahr) => array('Heilige 3 Könige' => array('ö'),

                                                              
                  'Erscheinungsfest' => array('d-bawü''d-saan''d-bay')),

                          
                  mktime(0,0,051$jahr) => array('Staatsfeiertag' => array('ö'),

                                                              
                  'Tag der Arbeit' => array('d')),

                          
                  mktime(0,0,08,15$jahr) => array('Maria Himmelfahrt' => array('ö''d-saar''d-bay')),

                          
                  mktime(0,0,0,103$jahr) => array('Tag der dt. Einheit' => array('d')),

                          
                  mktime(0,0,0,10,26$jahr) => array('Nationalfeiertag' => array('ö')),

                          
                  mktime(0,0,0,10,31$jahr) => array('Reformationstag' => array('d-bran''d-mepo''d-sax''d-saan''d-thür')),

                          
                  mktime(0,0,0,111$jahr) => array('Allerheiligen' => array('ö''d-bawü''d-nrw''d-rhpf''d-saar''d-bay')),

                          
                  mktime(0,0,0,11,20$jahr) => array('Buß und Bettag' => array('d-sax')),

                          
                  mktime(0,0,0,128$jahr) => array('Maria Empfängnis' => array('ö')),

                          
                  mktime(0,0,0,12,25$jahr) => array('Christtag' => array('ö'),

                                                              
                  '1. Weihnachtstag' => array('d')),

                          
                  mktime(0,0,0,12,26$jahr) => array('Stephanitag' => array('ö'),

                                                              
                  '2. Weihnachtstag'  => array('d')),

                          
                  mktime(0,0,0,12,31$jahr) => array('Sylvester'  => array('d','ö')),

                      
                  #Feiertage basierend auf Ostersonntag


                          
                  mktime(0,0,0,$monat,$tag-46,$jahr) => array('Aschermittwoch'=> array('ö')),        

                          
                  mktime(0,0,0,$monat,$tag2,$jahr) => array('Karfreitag' => array('ö''d')),

                          
                  mktime(0,0,0,$monat,$tag,   $jahr) => array('Ostersonntag' => array('ö''d')),

                          
                  mktime(0,0,0,$monat,$tag1,$jahr) => array('Ostermontag' => array('ö''d')),

                          
                  mktime(0,0,0,$monat,$tag+39,$jahr) => array('Christi Himmelfahrt' => array('ö''d')),

                          
                  mktime(0,0,0,$monat,$tag+49,$jahr) => array('Pfingstsonntag' => array('ö''d')),

                          
                  mktime(0,0,0,$monat,$tag+50,$jahr) => array('Pfingstmontag'=> array('ö''d')),

                          
                  mktime(0,0,0,$monat,$tag+60,$jahr) => array('Fronleichnam' => array('ö, d-bawü, d-bay, d-nrw, d-rhpf, d-saar, d-sax, d-thür')),


                      
                  #Feiertage basierend auf 1. Advent
                          
                  $firstadvent-11*3600*24            => array('Buß - und Bettag' => array('d')),
                          
                  $firstadvent                       => array('1. Advent' => array('d','ö')),
                          
                  $firstadvent+7*3600*24             => array('2. Advent' => array('d','ö')),
                          
                  $firstadvent+14*3600*24            => array('3. Advent' => array('d','ö')),
                          
                  $firstadvent+21*3600*24            => array('4. Advent' => array('d','ö')),


                      
                  #Wichtige Tage
                      
                  mktime(0,0,0,1,1+44,$jahr)                    => array('Valentienstag' => array('d')),
                      
                  mktime(0,0,0,1,1+79+date("L"),$jahr)          => array('Frühlingsanfang' => array('d')),
                      
                  mktime(0,0,0,1,1+171+date("L"),$jahr)         => array('Sommeranfang' => array('d')),
                      
                  mktime(0,0,0,1,1+275+date("L"),$jahr)         => array('Herbstanfang' => array('d')),
                      
                  mktime(0,0,0,1,1+355+date("L"),$jahr)         => array('Winteranfang' => array('d')),
                      
                  $summertime                                   => array('Sommerzeitumstellung' => array('d','ö')),
                      
                  $wintertime                                   => array('Winterzeitumstellung' => array('d','ö'))
                      
                      );

                      if (
                  $feiertag = @$arr[$werktag]) {

                          foreach (
                  $feiertag as $fname=>$wo) {

                              if (
                  in_array($land$wo) || in_array($land.'-'.$region,    $wo)) {

                                  return 
                  $fname;

                              }

                          }

                      return 
                  '';

                      }

                  }
                  //end function
                  ?>

                  Kommentar


                  • #10
                    Habe jetzt ne function die den Buß- und Bettag errechnet.

                    PHP-Code:
                    function bb_tag($ts) {
                    /*
                    * Die Funktion "BB_Tag" berechnet das Datum für den Buß- und Bettag.
                    * Aufruf: $bb_tag = BB_Tag(Timestamp)
                    */
                        
                    $i=16;
                        
                    $bbt mktime(0,0,0,11,$i,date("Y",$ts));
                        while(
                    date("w",$bbt) != 3){
                            
                    $i++;
                            
                    $bbt=mktime(0,0,0,11,$i,date("Y",$ts));
                            if (
                    $i 22) {
                                 break;
                            } 
                    //end if
                        
                    // end while
                        
                    return $bbt;
                    }
                    //end function bb_tag 
                    Grüße an alle und weiterhin frohes Arbeiten

                    Kommentar


                    • #11
                      War doch auch bei meiner Version implementiert!

                      Goebel

                      Kommentar


                      • #12
                        wo denn? (Blindheit)
                        Zuletzt geändert von eSHa; 23.09.2002, 18:08.
                        Grüße an alle und weiterhin frohes Arbeiten

                        Kommentar


                        • #13
                          PHP-Code:
                          $firstadvent-11*3600*24            => array('Buß - und Bettag' => array('d')), 

                          Kommentar


                          • #14
                            OK. Hab ich übersehen.
                            Dann ist die Zeile
                            PHP-Code:
                            mktime(0,0,0,11,20$jahr) => array('Buß und Bettag' => array('d-sax')), 
                            aber überflüssig.
                            Grüße an alle und weiterhin frohes Arbeiten

                            Kommentar


                            • #15
                              schaut super aus - nur ich bin eben wohl am schlafen ...
                              um die funktino auszulesen schreib ich doch:

                              PHP-Code:
                              echo feiertag($sqldatum_oder_timestamp$land$region); 
                              oder ????

                              doch da kommt nichts - was mich darauf brachte das in der funktion wohl was fehlt ??? am ende hab ich einfach nur nicht den durchblick - würde mich nicht wunder ... wer kann mir helfen ???




                              PHP-Code:
                                  if ($feiertag = @$arr[$werktag]) {

                                      foreach (
                              $feiertag as $fname=>$wo) {

                                          if (
                              in_array($land$wo) || in_array($land.'-'.$region,    $wo)) {

                                              return 
                              $fname;

                                          }

                                      }

                                  return 
                              '';

                                  }

                              }
                              //end function
                              ?> 
                              besucht mich mal ...

                              Kommentar

                              Lädt...
                              X