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

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å
×
×
  • Opprett ny...