webForumDet fria alternativet

fylla en array med hjälp av loop, och kontrollera att det fylls i rätt

ASP

1 svar · 282 visningar · startad av plelkes

Medlem sedan mars 2002823 inlägg
Frågan#1

Hejhej,

skulle böva hjälp med att förstå och lära mig hur man fyller i en array med hjälp av en loop.
Nedan följer min kod med kommentarer:

'betrakta kalendern som en 2 dimentionell matris med 7 kolumner (representerar dagar/1 vecka)
'och 6 radera (reperesenterar maximalt möjliga veckor). dvs 42(= 6*7) unika celler.
'Vi skapar en array med 42 element. 1:a elementet = 1:a cellen = 1:a Söndagen i månaden
'2:a elementet = 2:a cellen = 2:a Måndagen i månaden
'osv
'Om vi placerar månadens dagar på de korrekta positionerna i arrayen, kan formaterad utskrift av kalendern 
'fås genom att loopa igenom arrayen.
'Exempel:
'om aktuella månadens första dag är en tisdag (= 3 i funktionen DatePart() ). Med andra ord så tilldelas 
'3:e elementet i vår arrey värdet 1. 4:e elementet i arreyen ( = onsdag i funktionen DatePart()) tilldelas värdet 2.
'Detta fortsätter så många gånger som det finns dagar i månaden.

Dim dagensdat  'för att få reda på det aktuella datumet
Dim fdm  'aktuella månadens första dag
Dim adim 'hur många dagar innehåller den aktuella månaden?
Dim aDagar(42) 'arrayen aDagar kommer befolkas av månadens dagar

dagensdat = Date()
fdm = DatePart("w", DateSerial(Year(dagensdat), Month(dagensdat), 1))
adim = DatePart("d", DateSerial(Year(dagensdat), Month(dagensdat)+1, 1-1)) 'da´n innan första dagen i 
'nästa månad. dvs sista dagen i nuvarande månad.
Response.Write MonthName(Month(dagensdat))
Response.Write "smånad första dag är en "
Response.Write WeekdayName(fdm)
Response.Write "<BR>"
Response.Write "och " & " innehåller   "& adim & "dagar"
Response.Write "<BR>"
Response.Write "Året är " & Year(dagensdat)

'Nu behöver vi en loop för att fylla vår array (som ju heter aDagar)
Dim iDag   'månadens dagar

For iDag= fdm to adim
   aDagar( fdm) = iDag
Next
%>
</BODY>
</HTML>

Mina frågor/undringar:

  1. är min lopp
Dim iDag   'månadens dagar

For iDag= fdm to adim
   aDagar( fdm) = iDag
Next
      rätt skrivet?
  1. hur kan jag kontrollera om första elementet i arrayen är månadens första dag, osv?. (i maj-03 fall skall första elementets värde vara 5 (torsdag))
Medlem sedan mars 2002823 inlägg
#2

Tillägg!
Med koden

Dim iDag 'månadens dagar

For iDag = 1 to adim
   aDagar(iDag + fdm - 1) = iDag
   Response.Write iDag & "<BR>"
Next
   Får jag iaf 31 siffror uppradade (maj-03) har ju 31 dagar...

Men hur kollar jag att rätt tilldelning har skett?

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)