Susann Sund: Feiertag mit wechselndem Datum vorher deffinieren

Beitrag lesen

welches Datum der Freitag nach dem 170. Tag (im Schaltjahr der 171.) bzw. nach dem 20.06. des Jahres  hat

Dieser eine Satz hätte als Fragestellung gereicht - manche Dinge können so einfach sein :)

getdate() liefert dir den Wochentag als Wert zwischen 0 (Sonntag) und 6 (Sonnabend). Berechne mit getdate() den Wochentag des 21.6. und addiere entsprechend:

Tag  Wert  Zum Datum zu addieren, um auf nächsten Freitag zu kommen
 So    0   +5
 Mo    1   +4
 Di    2   +3
 Mi    3   +2
 Do    4   +1
 Fr    5    0
 Sa    6   +6

$uhr = getdate(); // dieses Jahr ermitteln  
  
$ticktack = mktime(12, 0, 0, 6, 21, $uhr["year"]); // Ticks für 21.6. dieses Jahres ermitteln  
$uhr = getdate($ticktack); // aus Ticks den Wochentag für 21.6. ermitteln  
  
if ($uhr["wday"] < 5) { // falls 21.6. Sonntag (0) bis Donnerstag (4)  
    $mittsommer = 21 + (5 - $uhr["wday"]);  
}  
else if ($uhr["wday"] > 5) { // falls 21.6. Sonnabend (6)  
    $mittsommer = 21 + 6;  
}  
else if ($uhr["wday"] == 5) { // 21.6. ist Freitag  
    $mittsommer = 21;  
}  
  
echo "Mittsommer fällt dieses Jahr auf Freitag, den " . $mittsommer . ". Juni.";

So in der Art, das ist jetzt des besseren Verständnisses halber _sehr_ ausführlich gehalten.