Feiertage

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

  • #16
    Original geschrieben von TimoGoebel
    Habe des Script mit allen möglichen Tagen erweiter! (Sommerzeitumstellung,...) Hier der Code
    ......

    dieser code ist leider ein bissla buggy. Zum beispiel erhält er die Uhrzeit, was dem code später bei der uhrzeit das genick bricht .

    Weiterhin ist am 3.10.2004 nie und nimmer herbstanfang.

    Weiterhin wird der "Tag der deutschen Einheit" nicht ins array aufgenommen (taucht nicht in var_dump auf), da das vom herbstanfang überschrieben wird.

    Weiterhin wird bei der schalftjahrprüfung für die wichtigen tage, immer das aktuelle jahr übernommen, nicht das übergebene.


    Aber sonst ist die Idee ganz gut.

    Revolutio

    Hoffe mein Beitrag hilft das sonst gute script zu verbessern.


    EDIT:
    Code entfernt, bessere Übersicht.
    Zuletzt geändert von Revolutio; 03.10.2004, 10:18.

    Kommentar


    • #17
      wenn möglich hätte ich doch hier gern den aktuellen "sauberen" code incl der anzeige - sprich echo ...

      ist das machbar ?
      besucht mich mal ...

      Kommentar


      • #18
        Original geschrieben von cb master
        wenn möglich hätte ich doch hier gern den aktuellen "sauberen" code incl der anzeige - sprich echo ...

        ist das machbar ?
        Das wäre ideal^^
        ich brauch den code nämlich auch, außerdem brauch ich hilfe.
        wenn ich ihn mit:
        PHP-Code:
        echo feiertag(2005-12-31ö,""); 
        aufrufe, was sollte er mir da ausgeben?
        Weil ausgeben tut er mir nichts obwohl ja eigendlich silvester is.

        EDIT:
        Obwohl, eigendlich brauch ich das script ja nur um festzustellen ob ein eingegebener tag ein feiertag ist oder nicht. Also eigendlich würde es reichen wenn mir die funktion 1 oder 0 zurückgibt
        Zuletzt geändert von Zeroskill; 05.05.2005, 13:42.
        Nicht der,
        der ständig Fragen stellt ist dumm,
        sondern der,
        der nichts gegen seine Unwissenheit tut.

        Kommentar


        • #19
          so hab mich mal bisschen gespielt mit dem script,
          errechnet ab heutigen tag(mitternacht) die $bevorstehenden_tage,
          jedoch fehlen paar tage , bzw werden nicht ausgegeben hmm, weihnachten zb

          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('Valentinstag' => 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

          $c=800;
          $tag date("j"); 
          $monat date("m"); 
          $jahr date("Y"); 
          $timestamp mktime(0,0,0,$monat,$tag,$jahr); 
          print 
          "Ausgegeben werden die nächsten  $c Tage : <br>TIMESTAMP TODAY MIDNIGHT: $timestamp<br>";

          for(
          $count 1$count $c$count++)
             {
          $timestamp=$timestamp+86400
          $ft feiertag($timestampö,"");
          $zeit=date ("d.m.Y"$timestamp);
          print 
          "$timestamp : $zeit : $ft<br>";
          }
          ?>
          Zuletzt geändert von regged; 06.07.2006, 20:59.

          Kommentar


          • #20
            keiner eine idee ?

            Kommentar

            Lädt...
            X