PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (PHP) timestamp >>> Feiertagsformel


ca | Blade-IV
2004-10-31, 18:15:29
hu,

gibt es irgend ne möglichkeit anhand des timestamps sich die feirtage berechnen zulassen ?!

mfg,Alex.R.

darph
2004-10-31, 19:01:20
Hm.

Der Timestamp sind doch die Sekunden seit Beginn der Unix-Epoche (oder wie man das nennt). Du müßtest halt ausrechnen, zu welcher Sekunde ab da das erste Mal zum Beispiel Weihnachten war.

Wenn jetzt der aktuelle Timestamp minus diesem Zeitrum durch die Anzahl der Sekunden eines Jahres glatt teilbar ist, dann ist Weihnachten.

Dazu müßtest du noch die Schaltjahre mit berechnen, aber etwa so sollte es gehen. Da Feiertage ja in jedem Land unterschiedlich sind, wirst du das in Handarbeit etwa so machen müssen... :/

Nase
2004-10-31, 19:37:17
Hm.

Der Timestamp sind doch die Sekunden seit Beginn der Unix-Epoche (oder wie man das nennt). Du müßtest halt ausrechnen, zu welcher Sekunde ab da das erste Mal zum Beispiel Weihnachten war.

Wenn jetzt der aktuelle Timestamp minus diesem Zeitrum durch die Anzahl der Sekunden eines Jahres glatt teilbar ist, dann ist Weihnachten.

Dazu müßtest du noch die Schaltjahre mit berechnen, aber etwa so sollte es gehen. Da Feiertage ja in jedem Land unterschiedlich sind, wirst du das in Handarbeit etwa so machen müssen... :/
Stellt sich nur die Frage, was das bringen sollte, da man die Daten ja vorher schon kennen muss. Also kann man nicht aus einem Timestamp Feiertage berechnen.

ca | Blade-IV
2004-11-03, 15:12:53
fürn ostersonntag gibts sowas...

// Gefunden auf Stadtaus.com

Ostern, PHP und Gauß
Die Formel zur Berechnung des Ostersonntags und die dadurch mögliche Ermittlung einer Reihe weiterer kirchlicher Feiertage liegt bereits in den verschiedensten Formaten vor. So schon gesehen als Excel-Datenblatt, als JavaScript-Code oder als Perl-Script. Auf dieser Seite finden Sie einen Code-Schnipsel, mit dem der Ostersonntag mit Hilfe von PHP ermittelt wird.

Praktischer Weise sind Feiertage in handelsüblichen Kalendern serienmäßig eingebaut und meist auch speziell gekennzeichnet. Eine spezielle Rolle spielen dabei der Ostersonntag und der Mathematiker, Astronom und Physiker Carl Friedrich Gauß (1777-1855). Letzterer hat einen Algorithmus bestimmt, der die Berechnung von ersterem ohne Kenntnis des Mondkalenders erlaubt. Dieser funktioniert zwar nur für die Jahre 1700 bis 2199, sollte aber für's erste ausreichen.


<?php

function ostersonntag($year) {

$J = date ("Y", mktime(0, 0, 0, 1, 1, $year));

$a = $J % 19;
$b = $J % 4;
$c = $J % 7;
$m = number_format (8 * number_format ($J / 100) + 13) / 25 - 2;
$s = number_format ($J / 100 ) - number_format ($J / 400) - 2;
$M = (15 + $s - $m) % 30;
$N = (6 + $s) % 7;
$d = ($M + 19 * $a) % 30;

if ($d == 29) {
$D = 28;
} else if ($d == 28 and $a >= 11) {
$D = 27;
} else {
$D = $d;
}

$e = (2 * $b + 4 * $c + 6 * $D + $N) % 7;


$easter = mktime (0, 0, 0, 3, 21, $J) + (($D + $e + 1) * 86400);

return $easter;

}

echo date("Y-m-d", ostersonntag('2005'));

?>