Gå til innhold

[Løst]Algoritme for norske helligdager?


Anbefalte innlegg

Prøver meg på et skudd i blinde her...

 

Er det noen som vet om eller har en algoritme for å finne ut hvilke dager som er norske helligdager / røde dager?

 

Kan klare meg med de fleste helligdagene, også kanskje legge noe til selv...

 

Alle tips er velkommne :)

Lenke til kommentar
Videoannonse
Annonse

Vet ikke om noen algoritme, men de fleste er på spesifikke dager, bortsett fra påske.

 

Easter is a moveable feast, meaning it is not fixed in relation to the civil calendar. Easter falls at some point between late March and late April each year (early April to early May in Eastern Christianity), following the cycle of the moon. After several centuries of disagreement, all churches accepted the computation of the Alexandrian Church (now the Coptic Church) that Easter is the first Sunday after the Paschal Full Moon, which is the first moon whose 14th day (the ecclesiastic "full moon") is on or after March 21 (the ecclesiastic "vernal equinox").

 

Kompliserte greier :p

Lenke til kommentar

Jeg slengte sammen noe som ser ut til å stemme :)

Laget i PHP.

 

	/**
 * Funksjon for å bestemme om en gitt dag er helligdag eller ikke
 *
 * @param integer $tstamp
 * @return boolean
 */
function checkIfHolyday($tstamp) {
	$date = date("Y-m-d", $tstamp); //Konverterer timestamp til datoformat
	list($year, $month, $day) = split("[-]", $date); //Splitter dato i år, mnd, dag

	//Finner antall sekunder i en dag
	$oneDaySec = (60*60*24);

	//Sjekker om datoen er 1. Januar
	if ($date == $year."-01-01")
		return true;
	//Sjekker om datoen er pamlesøndag (1. påskedag - 7 dager)
	if ($date == date("Y-m-d", (easter_date($year) - ($oneDaySec*7))))
		return true;
	//Sjekker om datoen er skjærtorsdag (1. påskedag - 3 dager)
	if ($date == date("Y-m-d", (easter_date($year) - ($oneDaySec*3))))
		return true;
	//Sjekker om datoen er langfredag (1. påskedag - 2 dager)
	if ($date == date("Y-m-d", (easter_date($year) - ($oneDaySec*2))))
		return true;
	//Sjekker om datoen er 1. påskedag
	if ($date == date("Y-m-d", easter_date($year)))
		return true;
	//Sjekker om datoen er 2. påskedag (1. påskedag + 1 dag)
	if ($date == date("Y-m-d", (easter_date($year) + $oneDaySec)))
		return true;
	//Sjekker om datoen er 1. mai (offentlig høytidsdag)
	if ($date == $year."-05-01")
		return true;
	//Sjekker om datoen er 17. mai (grunnlovsdag)
	if ($date == $year."-05-17")
		return true;
	//Sjekker om datoen er kristi himmelfartsdag (40. påskedag)
	if ($date == date("Y-m-d", (easter_date($year) + ($oneDaySec*39))))
		return true;
	//Sjekker om datoen er 1. pinsedag (50. påskedag)
	if ($date == date("Y-m-d", (easter_date($year) + ($oneDaySec*49))))
		return true;
	//Sjekker om datoen er 2 pinsedag (51. påskedag)
	if ($date == date("Y-m-d", (easter_date($year) + ($oneDaySec*50))))
		return true;
	//Sjekker om datoen er 1. juledag (25. desember)
	if ($date == $year."-12-25")
		return true;
	//Sjekker om datoen er 2 juledag (26. desember)
	if ($date == $year."-12-26")
		return true;

	//Returnerer false hvis dette ikke er en rød ukedag
	return false;
}

Lenke til kommentar

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...