Avatar billede dex_dexter Nybegynder
26. april 2004 - 11:09 Der er 28 kommentarer og
1 løsning

udregning af dato på helligdage

jeg står og mangler et script der kan give mig datoerne på de danske helligdage(de dynamiske såsom påske, pinse, og alle de andre underlige)
jeg kunne begynde at regne og gøre ved, men der må da være noget ude i verdenen der allerede har opfundet en sådanne ting?
Avatar billede olebole Juniormester
26. april 2004 - 11:33 #1
<ole>

Det tvivler jeg lidt på, er tilfældet. Det ville kræve en temmelig stor algoritme, hvis du vil have det hele med  :)

/mvh
</bole>
Avatar billede hmortensen Nybegynder
26. april 2004 - 11:38 #2
Avatar billede dex_dexter Nybegynder
26. april 2004 - 12:08 #3
det jeg mangler er faktisk blot hvordan man får fundet påsken, det er nemligt rimeligt nemt at udregne hvor de andre ligger ud fra det.
men der er vel ikke en liste med helligdage de næsten 10 år frem derude så?
Avatar billede hmortensen Nybegynder
26. april 2004 - 12:09 #4
På den side jeg har linket til, er der udregning til påsken
Avatar billede dex_dexter Nybegynder
26. april 2004 - 12:13 #5
hov, det er det der med at trykke update engang i mellem ;)
Avatar billede dex_dexter Nybegynder
26. april 2004 - 12:14 #6
men den makro er satme ikke for børn, kommentering har de ikke gjort noget ud af
Avatar billede hmortensen Nybegynder
26. april 2004 - 12:15 #7
Nah, hvem siger også at det skal være let.

Kan godt prøve at kigge på den...
Avatar billede dex_dexter Nybegynder
26. april 2004 - 12:18 #8
det er altid sjovere når det er let, men jeg sidder også og splitter den lidt op
Avatar billede olebole Juniormester
26. april 2004 - 12:33 #9
Fra: http://aa.usno.navy.mil/faq/docs/easter.html :

The algorithm uses the year, y, to give the month, m, and day, d, of Easter. The symbol * means multiply.


    c = y / 100
    n = y - 19 * ( y / 19 )
    k = ( c - 17 ) / 25
    i = c - c / 4 - ( c - k ) / 3 + 19 * n + 15
    i = i - 30 * ( i / 30 )
    i = i - ( i / 28 ) * ( 1 - ( i / 28 ) * ( 29 / ( i + 1 ) )
        * ( ( 21 - n ) / 11 ) )
    j = y + y / 4 + i + 2 - c + c / 4
    j = j - 7 * ( j / 7 )
    l = i - j
    m = 3 + ( l + 40 ) / 44
    d = l + 28 - 31 * ( m / 4 )


For example, using the year 2010,
y=2010,
c=2010/100=20,
n=2010 - 19 x (2010/19) = 15,
etc. resulting in Easter on April 4, 2010.
-------------------------------------------------------
Desuden er der:
http://www.tondering.dk/claus/cal/node3.html#SECTION003120000000000000000

http://www.nmm.ac.uk/site/request/setTemplate:singlecontent/contentTypeA/conWebDoc/contentId/350/viewPage/2

Og en algoritme i Basic:
http://www.assa.org.au/edm.html#Computer
Avatar billede hmortensen Nybegynder
26. april 2004 - 12:58 #10
Så er den omskrevet. De andre dage skulle der ikke være noget problem ved.

<?php

function paaskedag($year) {
    $k = $year / 100;
    $p = (13 + 8 * $k) / 25;
    $q = $k / 4;
    $m = (15 - $p + $k - $q) % 30;
    $n = (4 + $k - $q) % 7;
    $a = $year % 19;
    $b = $year % 4;
    $c = $year % 7;
    $d = (19 * $a + $m) % 30;
    $e = (2 * $b + 4 * $c + 6 * $d + $n) % 7;
    $f = $d + $e;
   
    if ($f <=9) {
        $day = 22 + $f;
        $month = 3;
    } else {
        if (($d == 29) AND ($e == 6)) {
            $day = 19;
            $month = 4;
        } else {
            if (($d == 28) AND ($e == 6) AND ($a > 10)) {
                $day = 18;
                $month = 4;
            } else {
                $day = $f - 9;
                $month = 4;
            }
        }
    }
   
    return $day."/".$month;
}

echo paaskedag("2004");

?>
Avatar billede dex_dexter Nybegynder
26. april 2004 - 13:18 #11
jeg kan ikke sige andet end.
du er sej :)
Avatar billede hmortensen Nybegynder
26. april 2004 - 13:37 #12
Kan du selv bikse de andre dage ind i ?
Avatar billede dex_dexter Nybegynder
26. april 2004 - 13:43 #13
jeg er selv igang med at finde ud af det, regner med at lave det hele som en række funktioner.
skal nok smide det herind når jeg er færdig, andre skal også have glæde af det.
det undrer mig lidt at der ikke findes andre der har lavet sådan en række funktioner, for kunne da forestille mig at det var meget brugt rundt omkring i diverse kalendere
svarer du ikke lige engang?
Avatar billede hmortensen Nybegynder
26. april 2004 - 13:46 #14
Det kan jeg gerne godt gøre ;)

Fx. skørtorsdag er påskedag - 3. Husk at bruge en dato funktion, hvis nu påskedag er 2/4, så skal den jo helst gi 30/3
Avatar billede dex_dexter Nybegynder
26. april 2004 - 13:47 #15
ja, det gælder om at holde tungen lige i munden
Avatar billede hmortensen Nybegynder
26. april 2004 - 13:47 #16
Smider lige en funktions liste over de mest gængse dage senere, hvis jeg får tid
Avatar billede sukos Juniormester
26. april 2004 - 14:50 #17
Hvad er der galt med easter_date() ?

http://dk.php.net/manual/en/function.easter-date.php
Avatar billede hmortensen Nybegynder
26. april 2004 - 14:51 #18
Bah !
Nu er du jo plat ;)
Avatar billede hmortensen Nybegynder
26. april 2004 - 14:55 #19
Fatal error: Call to undefined function: easter_date() in ....

Ikke std funktion ?
Avatar billede sukos Juniormester
26. april 2004 - 14:56 #20
echo date("M-d-Y", easter_date(2005));
Avatar billede hmortensen Nybegynder
26. april 2004 - 14:59 #21
Har lige prøvet at kopiere det direkte ind.
Har også kopieret direkte ind fra manualen, og det gir sammen fejl.

Bruger version 4.3.1, så det burde ikke ha noget at sige
Avatar billede sukos Juniormester
26. april 2004 - 15:03 #22
? underligt.
Virker fint her.
echo date("M-d-Y", easter_date(2005));
gi'r Mar-27-2005
Avatar billede hmortensen Nybegynder
26. april 2004 - 15:06 #23
Ja, det forstår man intet af...

Så er det måske alligevel godt at jeg har slavet den anden funktion frem :D

Har lige prøvet på en anden server, og det gir samme resultat
Avatar billede sukos Juniormester
26. april 2004 - 15:09 #24
Ja, det er sgu sært!
Eneste "bøf" jeg lige kan komme på, er hvis PHP afvikles som CGI evt.?
Avatar billede hmortensen Nybegynder
26. april 2004 - 15:11 #25
Avatar billede sukos Juniormester
26. april 2004 - 15:16 #26
hmm, ja det er jo som LoadModule
Nu er jeg desværre ikke vant til UNIX, så jeg er helt på bar bund! (tom for ideer om hvad der er galt)
Avatar billede hmortensen Nybegynder
26. april 2004 - 15:22 #27
Og det er på 2 forskellige servere...

Anyway, den anden virker jo fint ;)
Avatar billede fri-hash Nybegynder
05. maj 2004 - 10:30 #28
fandt dette indlæg via søgefunktionen
dex_dexter skrev
"jeg er selv igang med at finde ud af det, regner med at lave det hele som en række funktioner."

er det noget du har fået lavet? jeg skal nemlig bruge en liste over disse helligdage og outlooks helligdage går kun frem til 2007, og som du selv skriver så er det jo fjollet at opfinde den dybe tallerken igen.

PS: har set dit brugernavn ret ofte i et andet forum af en lidt anden (fræk) karakter, er det også dig?
Avatar billede dex_dexter Nybegynder
05. maj 2004 - 15:57 #29
kalder du mig fræk? :)
hvis du nævner hvad det er for et forum kan jeg da tage stilling til om det er mig, men du skal nok ikke gå ud fra det.
jeg har ikke fået lavet de funktioner da jeg opdagede at 'cal' på en unix havde en fin funktion der kan skrive det ud for mig :)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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