Avatar billede m-koldsgaard Nybegynder
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?
Avatar billede ghazaleh Nybegynder
14. juni 2004 - 11:45 #1
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 :-)
Avatar billede m-koldsgaard Nybegynder
14. juni 2004 - 12:15 #2
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));
Avatar billede compac Seniormester
18. juni 2004 - 22:15 #3
Der er gang i kalenderkonstruktionerne. Jeg kunne godt bruge en udregning af morsdag i javascript. Er der nogen der kan konvertere ovennævnte kode til javascript?
Avatar billede m-koldsgaard Nybegynder
18. juni 2004 - 23:33 #4
Jeg tror ikke strtotime el. lign. findes til javascript... Men hvis du har mulighed for det så kan du da echoe den til dit javascript via php...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester