Javascript Kalender

Fakta om Kalendermodulen

Visar datum från 1 januari 1900 till 31 december 2199
Har en avancerad funktion för hantering av högtidsdagar (se nedan)
Välj vilken dag som veckan inleds med och vilken som ska vara den religiösa dagen i veckan (där även stilen kan ändras med CSS-kod).
Dölj eller visa månfaser och veckonummer (även ändra format).
Ändra stil på kalenderns alla delar med CSS-kod.

Kalendermodulens parametrar

Kalender

Månfas
Dölj eller Visa månens faser i kalendern
Veckonummer
Visas inte Veckonummer visas inte i kalendern
ISO 8601 Se Slutord sist i den här tabellen
Vecka 1 börjar den 1 januari Vecka 1 börjar alltid den 1 januari
Veckans startdag
Söndag till lördag Välj vilken dag som visas i första kolumnen i kalendern
Veckans religiösa dag
Ingen eller söndag till lördag Välj vilken veckodag som är religiös

Högtidsdagar

Visa
Välj Ja för att visa eller Nej för att dölja högtidsdagar
Språkberoende högtidsdagar
Om Ja är valt och webbplatsen är flerspråkig är visningen av högtidsdagarna beroende av webbplatsens språk, Nej betyder att den valda filen innehållande högtidsdagar nedan alltid används
Välj en fil
Välj en fil som innehåller högtidsdagar

Flaggbild

Flaggbilder sparas i mappen images i modulens mapp med följande namn:
flag_språkparameter.gif
där språkparameter är t ex sv-SE om den skall visas
på en webbplats med svenska som valt språk eller en-GB på en engelsk.
Detta förutsätter att parametern Språkberoende flaggbild är satt till Ja
och att webbplatsen är flerspråkig.
Visa
Välj Ja för att visa eller Nej för att dölja flaggbild
Språkberoende flaggbild
Om Ja och webbplatsen är flerspråkig är val av flaggbild beroende av webbplatsens språk, Nej betyder att den valda flaggbilden nedan alltid visas
Välj en flaggbild
Flaggbilden som visas är beroende på inställningen av Språkberoende flaggbild ovan

Modulens stil

Ändra hela kalenderns stil med CSS-kod
Återställa CSS-parametrar till standardvärde
Markera textrutan med CTRL-A, tryck DEL sedan klicka på Spara

Kod för Högtidsdagar

Hur man skapar en fil med högtidsdagar

Varje kodrad placeras på en egen rad i filen där namnet skall vara feastday_språkparameter.txt där språkparameter är t ex sv-SE eller en-GB för att visa filen när webbplatsen visas på svenska respektive engelska

Filen placeras i mappen feastdays i modulens mapp

Filens uppbyggnad

Varje rad i filen är en instruktion för högtids- eller helgdagar med 5 parametrar åtskilda med kommatecken

Variabler

ww SUN/MON/TUE/WED/THU/FRI/SAT/SUN =
SÖN/MÅN/TID/ONS/TOR/FRE/LÖR
mn JAN/FEB/MAR/APR/MAY/JUN/JUL/AUG/SEP/OCT/NOV/DEC =
JAN/FEB/MAR/APR/MAJ/JUN/JUL/AUG/SEP/OKT/NOV/DEC
ff FIRST/SECOND/THIRD/LAST = FÖRSTA/ANDRA/TREDJE/SISTA
yy År med FYRA siffror
dd Dag (1-31)
mm Månad (1-12)
nn Positivt eller negativt tal
IN i
DAYS FROM EASTERDAY Dagar före, efter (eller 0) för själva påskdagen
EVERY nn YEAR FROM yy TO yy Var n:e år från år till (TO) år, TO är valfritt
För att skapa ny rad (html-taggen <br />) använd mellanslag&mellanslag

Parametrar

1:a parametern
Högtidsdagens datum

ff ww IN mn Ta reda på när en veckodag infaller en viss tid i en månad
ww FROM dd mn Ta reda på när en veckodag infaller från en viss dag och månad
nn DAYS FROM
EASTERDAY
Hitta ett datum som infaller ett angivet antal dagar före/efter Påskdagen
mm-dd Anger en specifik månad och dag

2:a parametern
Högtidsdagens namn

Ange ett namn på högtidsdagen som visas när den infaller

3:e parametern
Typ av högtidsdag

0 = Inte helgdag, 1 = Helgdag, 2 = Visas med med mindre bokstäver

4:e parametern
Visa/dölj flagga

1 = Flaggdag, 0 = Inte flaggdag

5:e parametern
Anger om Högtidsdagen skall visas

1 = Visas, 0 = Visas inte, EVERY nn YEAR FROM yy TO yy
Används oftast med Årsbegränsningen nedan

Årsbegränsning som kan användas i alla parametrar

yy:värde;yy:värde År:värde som skall visas Från och med detta år;År:värde som skall visas Till och med detta år
Se exemplen nedan

EXEMPEL

Exempel 1
Midsommarhelgen

Den kräver tre kodrader i filen:
Från 1953 infaller midsommarafton den första fredagen från och med 19 juni, raden skall inte visas före 1953

Kodrad:
FRI FROM 19 JUN,Midsommarafton,0,0,1953:1;1952:0

Betydelse:
Midsommarafton infaller den första fredagen från och med den 19 juni, dagens namn är Midsommarafton, 0=är inte en helgdag, 0=är inte flaggdag och sedan kommer första exemplet på Årsbegränsaren: före 1953 så visas inte den här dagen. Orsaken att denna kodrad är dold innan 1953 är att en annan kodarad nedan sköter visningen av denna dag före 1953


Midsommardagen infaller från 1953 på första lördagen från och med den 20 juni, före det infaller midsommardagen den 24 juni och den är helgdag och flaggdag från 1982 men inte före det och den inträffar bara från och med 1925.

Kodrad:
1953:SAT FROM 20 JUN;1952:6-24,Midsommardagen,1,1982:1;1981:0,1925:1;1924:0

Betydelse:
Här får jag stor hjälp av Årsbegränsaren för från 1953 så infaller midsommardagen på den lördag som infaller från och med 20 juni och 1952 och tidigare så infaller dagen den 24 juni (6-24 ovan), dagen heter Midsommardagen, 1=är helgdag, från 1982 flaggdag men inte innan och den visas från och med 1925 men före det så blir den dold.


Före 1925 så fanns bara Johannes döparens dag som inföll den 24 juni, efter det så fanns både midsommarafton och midsommardagen som inföll den 23 och 24 juni fram till 1953, men midsommardagen har jag behandlat med koden ovan från 1925 men inte vare sig midsommarafton från 1925 eller Johannes döparens dag före 1925

Kodrad:
1925:6-23;1924:6-24,1925:Midsommarafton;1924:Johannes döparens dag,1925:0;1924:1,0,1953:0;1952:1

Betydelse:
Årsbegränsaren hjälper mig att ange att från och med 1925 infaller dagen den 23 juni (6-23 ovan), före det den 24 (6-24), från 1925 heter dagen Midsommarafton, före det Johannes döparens dag, den är helgdag före 1925 men inte före, är inte en flaggdag och visas bara till och med 1952

Exempel 2
Riksdagsvalet

Från 1930 till 1970 hölls riksdagsval vart fjärde år

Kodrad:
SECOND SUN IN SEP,Riksdagsval,2,0,EVERY 4 YEAR FROM 1930 TO 1970

Betydelse:
Infaller andra söndagen i september, dagen heter Riksdagsval, siffran 2 anger att dagen visas med mindre bokstäver, 0=är inte flaggdag och visas vart fjärde år mellan 1930 och 1970.

Från 1973 till 1994 hölls riksdagsval vart tredje år

Kodrad:
SECOND SUN IN SEP,Riksdagsval,2,1982:1;1981:0,EVERY 3 YEAR FROM 1973 TO 1994

Betydelse:
Infaller andra söndagen i september, dagen heter Riksdagsval, siffran 2 anger att dagen visas med mindre bokstäver, är flaggdag från 1982 men inte innan och visas vart tredje år mellan 1973 och 1994.

Från 1998 och framåt hålls riksdagsval vart fjärde år

Kodrad:
SECOND SUN IN SEP,Riksdagsval,2,1982:1;1981:0,EVERY 4 YEAR FROM 1998

Betydelse:
Infaller andra söndagen i september, dagen heter Riksdagsval, siffran 2 anger att dagen visas med mindre bokstäver, är flaggdag från 1982 men inte innan och visas vart fjärde år från 1998.

Exempel 3
Påskdagen och dagar före/efter påskdagen

Här visar jag koden för påskdagen:

0 DAYS FROM EASTERDAY,Påskdagen,1,1983:1;1982:0,1

Betydelse:
Infaller, självklart, 0 dagar från påskdagen, dagen heter Påskdagen, 1=är helgdag, från 1983 är den flaggdag men inte innan och visas alltid.

Långfredagen infaller 2 dagar före påskdagen.

Kodrad:
-2 DAYS FROM EASTERDAY,Långfredag,1,0,1

Betydelse:
Infaller -2 dagar före påskdagen, heter Långfredag, 1=är helgdag, 0=är inte flaggdag och visas alltid.

Kristi Himmelsfärd infaller 39 dagar efter påskdagen.

Kodrad:
39 DAYS FROM EASTERDAY,Kristi Himmelfärdsdag,1,0,1

Betydelse:
39 dagar från påskdagen, heter Kristi Himmelfärdsdag, 1=är helgdag, 0=är inte flaggdag och visas alltid.

Exempel 4
Högtidsdagen infaller samma dag och månad varje år

Julafton är ett enkelt exempel:

12-24,Julafton,0,0,1

Betydelse:
Infaller 24 december (12-24 ovan), heter Julafton, 0=är inte helgdag, 0=är inte flaggdag och visas alltid.

Slutord

Några ord om hur ISO 8601 påverkar veckonummer och som gäller från den 1 januri 1973
Denna standard innebär att veckans första dag skall vara måndag och att vecka 1 är den vecka som innehåller första torsdagen på året vilket betyder att 4 januari alltid ligger i vecka 1.

Extra veckan 53 tillkommer om vecka 52 slutar före 28 december. Detta innebär att 1 januari inte alltid är vecka 1 utan vecka 52 eller 53 kan gå över till det nya året.

Före 1973 användes en biblisk syn på veckan som då startade med söndag och slutade med lördag. Vecka 1 inföll alltid den 1 januari och året avslutades med vecka 53 om vecka 52 slutade före 31 december, detta innebär att 31 december vissa år, t ex 1972, var vecka 54.
All kunskap om datum och veckor har i första hand hämtats från Wikipedia.
Copyright (C) 2011 Christer Toivonen. All rights reserved.

Extra information