Maandkalender
Hiernaast zie je een maandkalender. De huidige maand wordt getoond. De datum van vandaag licht op doordat
de kleur en de achtergrond contrasteren met de rest.
Als je op de pijltjes naar links
en naar rechts klikt, verschijnt de
vorige resp. de volgende maand. Als je op de maand klikt verschijnt de huidige maand weer.
Een klik op een datum brengt een alert op. Deze toont de gekozen datum, echter niet netjes geformatteerd.
De tijd is op 00:00:00 ingesteld.
Deze kalender is gemaakt op basis van code door F. Abbing. Zijn website is helaas opgeheven.
Op deze bladzijde staat beschreven hoe je de kalender in je eigen website kunt inbouwen en hoe je de
reactie op een datum-click kunt aanpassen aan je eigen wensen.
De kleuren van de kalender kunnen ook worden aangepast.
De code staat onderaan deze bladzijde. Je kunt hem ook downloaden om zelf te gebruiken.
- Er worden vier items besproken:
- Inbouwen in je eigen website
- Aanpassingen in de code om de kalender te gebruiken.
- Globale werking van het script dat de kalender genereert.
- Mogelijkheden om clicks op de kalender verder te gebruiken in je website.
- De code bestaat uit drie delen: Een Style-block en Javascript (in de HEAD) en HTML in de BODY.
- De JavaScript-code waarmee de kalender wordt gemaakt staat in de file maandkal.js. Het
style-block wordt door dit JavaScript automatisch uitgeschreven. Je hoeft dus geen aparte <style>-tag
in de HEAD op te nemen.
De code in maandkal.js moet worden aangepast om hem te gebruiken. - De bijbehorende HTML-code moet meestal ook worden aangepast.
- Het style-block wordt gemaakt met behulp van document.write. Bijna alles kan worden aangepast. Namen van classes en tags moeten uiteraard ongewijzigd blijven. Dat geldt ook voor uitlijning (text-align) en cursor. Pas op met het veranderen van afmetingen (padding, margin) en van de fonts (font-weight, font-size).
- Voor de kleuren kun je hexadecimale codes en standaard kleurnamen gebruiken. Zie daarvoor het item
"Kleurcodes voor tekst, links en achtergrond".
- Je zet de kalender in je web-pagina met behulp van een <div>-tag. Deze heeft id="Kalenderblad" en een style attribuut. Voor het overige is de <div>-tag leeg.
- Het id mag niet worden veranderd. De style kun je aanpassen. Met float kun je left of right gebruiken, of je kunt dit weg laten. De margins zijn handig om wat tussenruimte te maken met de rest van de pagina-inhoud. Verder zou je position, left, top, width en height kunnen toepassen. Dat is een kwestie van proberen.
- Direct na de <div>-tag wordt een de JavaScript function MaandKalender() aangeroepen.
Deze genereert de HTML van het kalenderblad en maakt deze de innerHTML van de <DIV> met
het id="Kalenderblad". Hierdoor verschijnt het kalenderblad op het scherm.
- Na een click op de kalender wordt de gekozen datum gecombineerd met de maand en het jaartal en in de datum-variabele GekozenDatum gezet. Er wordt niets aan geformatteerd, alleen wordt de tijd (uren:minuten:seconden) op 00:00:00 gezet.
- Vervolgens wordt de function KalenderResultaat() aangeroepen. Deze is bedoeld om GekozenDatum
verder laten verwerken. Je kunt de gegevens bijvoorbeeld in een formulierveld opnemen. Op deze bladzijde
verschijnt een alert, als voorbeeld.
De function KalenderResultaat() staat in de file maandkal.js. Deze function moet je aanpassen om de kalender zinvol te gebruiken. - Als je de kalender alleen wilt gebruiken om je website mee te verfraaien, moet KalenderResultaat() er
zo uit zien:
function KalenderResultaat() {} - Om de datum netjes op te maken kun je gebruik maken van het item "Systeem-datum tonen op een web-pagina".
- Het genereren van de kalender werkt -zonder in details te treden- als volgt:
- Bij openen van de pagina wordt de datum van vandaag bepaald. Hiervoor wordt de systeemdatum gebruikt. De huidige maand en het jaartal zijn nu ook bekend. Eventuele correctie voor een schrikkeljaar wordt hier uitgevoerd. De function MaandKalender() doet de rest:
- De dag (maandag, dinsdag, ...) waarop de eerste van de huidige maand valt wordt bepaald.
- De bovenste twee regels worden in de tabel gezet.
- De eerste tabel regel wordt gemaakt. Er worden zoveel lege cellen gemaakt als nodig is, daarna volgt 1, 2 enz.
- De tweede, derde, vierde, vijfde en zesde regel worden gemaakt.
- De zevende regel wordt gemaakt. Deze is meestal niet volledig. Lege cellen aan het einde van de regel worden niet meer toegevoegd. Dat is ook niet nodig. De browser zelf zorgt voor een nette rechthoekige tabel.
- Het veranderen van maand gaat als volgt:
- Merk op dat de maanden worden geteld van 0 tot en met 11. Dus januari = 0, februari = 1, enz.
- Volgende maand: Het maandnummer wordt verhoogd. Als het groter wordt dan 11 wordt het op 0 gezet en wordt het jaartal verhoogd. Vervolgens wordt MaandKalender() aangeroepen die een nieuwe tabel maakt en op het scherm laat verschijnen.
- Vorige maand: Het maandnummer wordt verlaagd. Als het kleiner wordt dan 0 wordt het op 11 gezet en wordt het jaartal verlaagd. Vervolgens wordt MaandKalender() aangeroepen die een nieuwe tabel maakt en op het scherm laat verschijnen.
Gebruik:
- De code staat gedeeltelijk in de <HEAD> en gedeeltelijk in de <BODY>.
- Voeg eventueel code toe om de gekozen datum te verwerken. Zie de tekst.
De code ziet er als volgt uit:
(Zet dit in de <HEAD>).
(Zet dit in de <BODY>, op de plaats waar de kalender moet verschijnen.).<script src="maandkal.js"></script>
<div id="Kalenderblad" style="float:right; margin-top:0px; margin-right:0px; margin-bottom:25px; margin-left:25px;">
</div>
<script>MaandKalender()</script>
Downloaden:
Druk op de knop:
File: voorb187.zip, 3381 bytes.
Opmerking:
Er is ook een versie van deze kalender beschikbaar die de resultaten direct aflevert in een formulier-veld.
Zie het item "Popup-kalender".
Er is ook een versie van deze kalender beschikbaar met weeknummers. Zie het item "Maandkalender II: met weeknummers".