phpbar.de logo

Mailinglisten-Archive

[php] =?ISO-8859-1?Q?Re:_[php]_OK,_hier_das_script,_ohne_Gew=E4hr_:-)_(hab'_lei?= =?ISO-8859-1?Q?der_keinen_webspace,_wo's_gut_runterzuladen_w=E4re)?=

[php] Re: [php] OK, hier das script, ohne Gewähr :-) (hab' lei der keinen webspace, wo's gut runterzuladen wäre)

Thomas Beckmann php_(at)_phpcenter.de
Thu, 16 Aug 2001 17:19:52 +0200


	# 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

	function feiertag($sqldatum_oder_timestamp, $land='d', $region='')
	{
      if (!function_exists('easter_date')) return false;

		if      (empty($sqldatum_oder_timestamp))      $werktag =
time();
		else if (is_numeric($sqldatum_oder_timestamp)) $werktag =
$sqldatum_oder_timestamp;
		else                                           $werktag =
sqlzeit2timestamp($sqldatum_oder_timestamp);

      $os = easter_date(date('Y', $werktag));
      $tag = date('d',$os);
      $monat = date('m',$os);
      $jahr = date('Y',$os);

      $arr = array(
      #Statische Feiertage
         mktime(0,0,0, 1, 1, $jahr) => array('Neujahr' => array('ö',
'd')),
         mktime(0,0,0, 1, 6, $jahr) => array('Heilige 3 Könige' =>
array('ö'),
                                             'Erscheinungsfest' =>
array('d-bawü', 'd-saan', 'd-bay')),
         mktime(0,0,0, 5, 1, $jahr) => array('Staatsfeiertag' =>
array('ö'),
                                             'Tag der Arbeit' =>
array('d')),
         mktime(0,0,0, 8,15, $jahr) => array('Maria Himmelfahrt' =>
array('ö', 'd-saar', 'd-bay')),
         mktime(0,0,0,10, 3, $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,11, 1, $jahr) => array('Allerheiligen' =>
array('ö', 'd-bawü', 'd-nrw', 'd-rhpf', 'd-saar', 'd-bay')),
         mktime(0,0,0,21, 1, $jahr) => array('Buß und Bettag' =>
array('d-sax')),
         mktime(0,0,0,12, 8, $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,$tag- 3,$jahr) => array('Karfreitag' =>
array('ö')),
         mktime(0,0,0,$monat,$tag,   $jahr) => array('Ostersonntag' =>
array('ö', 'd')),
         mktime(0,0,0,$monat,$tag+ 1,$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 = _(at)_$arr[$werktag])
         foreach ($feiertag as $fname=>$wo)
            if (in_array($land, $wo) || in_array($land.'-'.$region,
$wo)) return $fname;
      return '';
	}


	function sqlzeit2timestamp($sqldatetime)
	{
		if (is_numeric($sqldatetime))
   		return $sqldatetime;

		$sqlzeit = explode(' ', $sqldatetime);
		if (!empty($sqlzeit[1]))
		{
		   $uhrzeit = explode(':', $sqlzeit[1]);
	   	}
	   	else if (strstr($sqlzeit[0], ':')) # eine Uhrzeit
	   	{
		   $uhrzeit = explode(':', $sqlzeit[0]);
  	      $datum   = explode('-', date('Y-m-d'));
  	   }
   	else if (strstr($sqlzeit[0], '-')) # ein amerikanisches Datum
   	{
		   $uhrzeit = explode(':', date('H:i:s'));
		   $datum   = explode('-', $sqlzeit[0]);
  	   }
   	else                               # ein deutsches Datum
   	{
		   $uhrzeit = explode(':', date('H:i:s'));
		   $datum   = explode('.', $sqlzeit[0]);
		   $tmp     = $datum[0];
		   $datum[0] = $datum[2];
		   $datum[2] = $datum[1];
		   $datum[1] = tmp;
  	   }
		return mktime($uhrzeit[0], $uhrzeit[1], 0, $datum[1], $datum[2],
$datum[0]);
	}




---
Thomas Beckmann, Kiel, Germany
beckmann_(at)_gis.de


php::bar PHP Wiki   -   Listenarchive