Gå til innhold

Norske helligdager


Anbefalte innlegg

Hei,

 

Jeg jobber med å utvikle en kalender i PHP. Problemet er at jeg gjerne ønsker å oppgi "røde" dager. Men, som vi alle vet, endrer noen av disse dagene seg, f.eks påske..

 

Hvordan kan jeg regne ut når påsken inntreffer? finnes det noen ferdig-lagde matte stykker for dette, eller hvordan vil jeg gå fram for å finne røde dager i Norge?

Lenke til kommentar
Videoannonse
Annonse

Påskesøndag er første søndag etter første fullmåne etter vårjevndøgn. Pinse er 50 dager etter påskeaften. Kristi Himmelfartsdag er 6. torsdag etter skjærtorsdag (den måtte jeg konsultere Google for å få svar på). Jul, 1. mai og 17. mai klarer du vel selv? :) Tror det var alle helligdagene.

Lenke til kommentar

Endte opp med å gjøre det slik, vet ikke om det blir helt korrekt?

 

<?php
function norwegian_red_days($year)
{
// Easter days
$easter_days = easter_days($year);
// Dato første påskedag
$easter_first_day = 21 + $easter_days;
$date = 21 . "-" . 3 . "-" . $year;
// Første påske dag
$easter_date = date('d-m-Y', strtotime($date. "+{$easter_days} days"));

$red_days = array();
$red_days[] = "1/01/" . $year;
$red_days[] = "17/05/" . $year;
$red_days[] = str_replace('-','/',date('d-m-Y', strtotime($easter_date . "- 3 days")));
$red_days[] = str_replace('-','/',date('d-m-Y', strtotime($easter_date . "- 2 days")));
$red_days[] = str_replace('-','/',$easter_date);
$red_days[] = str_replace('-','/',date('d-m-Y', strtotime($easter_date . "+ 1 days")));
$red_days[] = str_replace('-','/',date('d-m-Y', strtotime($easter_date . "+ 39 days")));
$red_days[] = str_replace('-','/',date('d-m-Y', strtotime($easter_date . "+ 49 days")));
$red_days[] = str_replace('-','/',date('d-m-Y', strtotime($easter_date . "+ 50 days")));
$red_days[] = "25/12/" . $year;
$red_days[] = "26/12/" . $year;
return $red_days;
}
echo "<pre>";
print_r(norwegian_red_days(2016));
echo "</pre>";

Lenke til kommentar

Du kan forenkle koden mye, all str_replace() kan droppes, pluss litt til


function norwegian_red_days($year)
{
// Første påske dag
$easter_timestamp=strtotime('+' . easter_days($year) . ' days',mktime(0,0,0,3,21,$year));

$red_days = array();
$red_days[] = "1/01/" . $year;
$red_days[] = "17/05/" . $year;
$red_days[] = "25/12/" . $year;
$red_days[] = "26/12/" . $year;

// påske + kristi himmelfart + pinse
foreach (array(-3,-2,0,1,39,49,50) as $d)
 $red_days[]=date('d/m/Y',strtotime("{$d} days",$easter_timestamp));

return $red_days;
}

Endret av Crowly
Lenke til kommentar
  • 10 år senere...
  • 1 måned senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...