14. juni 2004 - 11:35
Der er
3 kommentarer og
1 løsning
Beregning af hellig- og mærkedage
Hej
Jeg har lavet en kalender i php, og jeg er nu ved at føre hellig- og mærkedage ind i den. Men der er jo nogle dage som ikke ligger på den samme dato hver år, og det giver lidt problemer. Dog hjælper den indbyggede PHP-funktion "easter-date()" rimelig meget på det.
Men "Mors Dag" og de 4 søndage i advent giver lidt problemer.
"Mors Dag" ligger på den anden søndag i maj. Men hvordan får man PHP til at regne det ud?
Med hensyn til de 4 søndag i advent er det jo bare at finde den sidste søndag før d. 25. december, og så trække henholdvis 7, 14 og 21 dage fra.
Nogen der kan hjælpe med det?
Løsningen til 4 søndage i advent er du jo egentlig kommet med.
Der er måske en smartere løsning, men du kan jo tjekke om 24. december er en søndag, hvis ikke, så tjek om 23. er en søndag osv. og trække 7, 14 og 21 dage fra.
På samme måde kan du finde mors dag:
Start med 1. maj, hvis det er en søndag, så læg 7 til ellers tjek 2. maj, hvis det er en søndag, så læg 7 til osv.
p.s. det er jo kun nødvendigt at tjekke 7 dage. Så helt besværgeligt bliver det forhåbenlig ikke :-)
Fandt lige en anden funktion i PHP: strtotime()
Og den kunne jeg så bruge:
$MorsDag = strtotime("2 Sunday",mktime(0,0,0,5,1,$År));
$Advent4 = strtotime("last Sunday",mktime(0,0,0,12,25,$År));
$Advent3 = mktime(0,0,0,date("n",$Advent4),date("j",$Advent4)-7,date("Y",$Advent4));
$Advent2 = mktime(0,0,0,date("n",$Advent4),date("j",$Advent4)-14,date("Y",$Advent4));
$Advent1 = mktime(0,0,0,date("n",$Advent4),date("j",$Advent4)-21,date("Y",$Advent4));