Kalender generen m.b.v. loops

Status
Niet open voor verdere reacties.

Ataaa

Gebruiker
Lid geworden
31 mei 2009
Berichten
7
Hallo,

Ik ben een beginnend iemand wat betreft javascript, weet er nog vrijwel niks van. Ik moet als opdracht een jaar kalender genereren. Dit kan gewoon in een simpele tabel vorm. Echter, mijn vraag is hoe ik de dagen krijg gegenereerd van een jaar. Ik moet ze genereren met behulp van loops. Van januari t/m december. Kan iemand me hierbij helpen, een start geven zodat ik hierop verder kan? Al is het maar van de eerste maand. :)
 
Ja, een beetje. Ik denk dat ik de for en while loop moet gebruiken maar dit weet ik niet zeker.
 
Ja, je kan een for loop gebruiken. Dat word dus zoiets:
Code:
for(variable; tot wanneer; toename;){code}
dus vb:
Code:
for(var i=0; i<7; ++1;){code}
Deze loop pakt een var, de var i met waarde 0. Zolang i minder is dan 7 blijft de loop doorgaan. Elk 'rondje' word i een meer. Meer soorten van laten toenemen: http://www.w3schools.com/js/js_operators.asp . Meer vergelijkingstypes (dus kleiner dan, groter dan, kleiner dan/gelijk aan...): http://www.w3schools.com/js/js_comparisons.asp
Ik zal even een voorbeeldje geven voor hoe je het met een week zou kunnen doen:
Code:
var dag = new Array('maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag','zondag');
//Alle dagen zitten in een array. Als je niet weet wat dit is, lees dit even: http://www.w3schools.com/js/js_obj_array.asp
//dag[0] is dus maandag, dag[1] is dinsdag etc. etc.
for(var wi = 0; wi<7; ++wi){
//ik gebruik wi, voor loops word meestal i gebruikt, en de w van week zodat je straks niet in de knoei komt met maanden (dus gebruik: mi). Je kan ook een eigen naam verzinnen, als je pudding beter vind, gebruik pudding!
//hij gaat door zolang wi kleiner is dan 7, dus hij stopt bij 6 (omdat 0 ook meetelt).
  alert(dag[wi]);
}
De dagen komen nu dus na elkaar in een popup in beeld, omdat ik niet weet hoe je ze in beeld wil hebben (in een div of tabel of....). Voor maanden doe je precies hetzelfde, alleen dan moet je dan andere getallen en een andere array gebruiken. Uiteindelijk moet je de 3 loops (dagen, maanden, jaren) in elkaar stoppen. Dit word je constructie:
(jaren(maanden(dagen)))

Als je vragen hebt, stel gerust :)

<ik ben nu ook in de helpmij chat, is misschien sneller>
<de codes kun je het beste lezen in een editor als notepad++, is gratis en die zorgt dat het beter leesbaar is (moet je eerst het bestand opslaan als een .js bestand, dan weet die dat het javascript is en voegt die syntaxmarkeringen toe (duur woord voor kleurtjes :P)
 
Laatst bewerkt:
Je kunt beginnen met een array te vullen:

var $2013 = array();
$2013['jan'] = 31;
$2013['feb'] = 28;
$2013['mrt'] = 31;
$2013['apr'] = 30;
$2013['mei'] = 31;
$2013['jun'] = 30;
$2013['jul'] = 31;
$2013['aug'] = 31;
$2013['sep'] = 30;
$2013['okt'] = 31;
$2013['nov'] = 30;
$2013['dec'] = 31;

Vervolgens met een for-next van 0-11 alle maanden doorlopen en de dagen tonen

Uiteraard kan je de jaartallen ook variabel maken en door een loop laten gaan.
Om het simpel te houden geef je februari 28 dagen wanneer het jaartal niet door 4 deelbaar is, anders geef je februari 29 dagen.
 
@Martijn: bedankt, heb komende dagen weinig tijd ivm werk maar zal er zondag naar kijken. Heb er op het eerste oog zeker wat aan, aan je antwoord!
@gast0158: correct me if im wrong, maar in javascript werken ze niet met $ toch?
 
@gast0158: correct me if im wrong, maar in javascript werken ze niet met $ toch?

Je hebt helemaal gelijk maar het gebruik er van is ook niet verboden.

Aangezien ik er niet zeker van was of ik een getal als variabele naam mocht gebruiken heb ik er in dit geval dus even een dollarteken voor gezet. :)
 
Sorry voor de late reactie @Martijn, laptop had wat kuren. Was van plan er eerder naar te kijken. Het is nu gelukt wat je zegt, heb ze nu ook als popup voor maanden en jaren. Hoe stop ik deze een tabel, maar nog belangrijker in elkaar, zoals je zei met (jaren(maanden(dagen))). En bij jaren, inprincipe hoef ik alleen maar van 2013 te doen. Dan is het toch niet noodzakelijk om meerdere in te vullen?
 
Heb hem inmiddels van popup naar los gekregen, was gewoon simpel las dat "alert" over het hoofd. Zit nu alleen te kijken hoe ik hem in tabel vorm krijg, en hoe ik dat nog met (jaren(maanden(dagen))) doe. Kan je hierbij helpen?
 
Heey, oké goed bezig zo te horen.
Ik ga natuurlijk niet alles voorkouwen (wil ik best wel doen hoor, maar dan is de lol voor jou er ook vanaf en heb je geen idee wat je doet dus lijkt me niet slim).
Als je kan, kom even in deze chat online: http://chattersweb.nl/chat.php?uid=25eeb3d81f&chan=martijn ik ben in ieder geval vandaag online als Martijn. Daar kan ik het steeds stap voor stap uitleggen zonder dat je steeds lang moet wachten :)
 
Ik ben vanaf 17:30 ongeveer aanwezig als dat nog mogelijk is. Tot zo. :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan