Jag håller på att skapa en egen kalender mha ASP, men har fastnat lite granna...
Jag loopar upp alla dagar i en månad genom att hämta antalet månader från en array, så att rätt antal dagar per månad skrivs ut. Men det funkar ju icke... Det funkar på Februari månad men inte på någon annan!
Det är några fler småfel som jag kanske återkommer med om jag inte lyckas lösa dem, men just nu är det här problemet väldigt störande. Någon som ser vad felet beror på?
jaha, du kanske kan beskriva lite mer. Vad hade du tänkt att få ut egentligen och vad blir resultatet. Att bara säga att det blir fel är lite för vagt. Något felmeddelande som dyker upp kanske?
LarsG -- Juste, den ska ligga utanför... Tyckte det såg skumt ut. Men den körs ju ändå bara en gång, då variabeln columnCounter sätts till ett värde som är lika stort som startColumn vid första körningen.
Felmeddelande blir det inget, utan det skrivs ut 31 dagar för alla måndare utom februari. Plus att det inte skrivs ut några tomma kolumner innan första dagen, om den är t.ex. en söndag som det är nu i april.
Nickemannen -- Ok, ett bra tips sitter aldrig fel :D
Palleman -- Lessen för det, men man får en mycket bättre överblick på koden, då alla tabbar kommer med. Det är orsaken till att jag använder den.
Okey, har fixat lite o pillat lite nu... Nu skriver den ut dagarna i rätt ordning, men jag lyckas ändå inte få till de där tomma kolumnerna som ska visas innan första dagen om dagen inte är en onsdag.
Men.. Jag använder mig av sex(!) stycken If-satser för att skriva ut tomma kolumner, och jag tycker det borde gå att lösa på ett snyggare och enklare sätt.
If startColumn = vbSunday then
For countColumns = 0 To 5
Response.Write "<td width=""79"" align=""left"">" & vbCrLf & " " & vbCrLf & "</td>" & vbCrLf
Next
startCalendar = 6
ElseIf startColumn = vbSaturday then
For countColumns = 0 To 4
Response.Write "<td width=""79"" align=""left"">" & vbCrLf & " " & vbCrLf & "</td>" & vbCrLf
Next
startCalendar = 5
ElseIf startColumn = vbFriday then
For countColumns = 0 To 3
Response.Write "<td width=""79"" align=""left"">" & vbCrLf & " " & vbCrLf & "</td>" & vbCrLf
Next
startCalendar = 4
ElseIf startColumn = vbThursday then
For countColumns = 0 To 2
Response.Write "<td width=""79"" align=""left"">" & vbCrLf & " " & vbCrLf & "</td>" & vbCrLf
Next
startCalendar = 3
ElseIf startColumn = vbWednesday then
For countColumns = 0 To 1
Response.Write "<td width=""79"" align=""left"">" & vbCrLf & " " & vbCrLf & "</td>" & vbCrLf
Next
startCalendar = 2
ElseIf startColumn = vbTuesday then
Response.Write "<td width=""79"" align=""left"">" & vbCrLf & " " & vbCrLf & "</td>" & vbCrLf
startCalendar = 1
End If
For daysCounter = 0 To cInt(arrDaysOfMonth(currentMonth-1))-1
If startCalendar Mod 7 = 0 then
Response.Write "</tr>" & vbCrLf & "<tr>" & vbCrLf
End If
Response.Write "<td width=""79"" align=""center"">" & vbCrLf
Response.Write "<font class=""calendarDay"">" & daysCounter+1 & "</font>" & vbCrLf
Response.Write "</td>" & vbCrLf
startCalendar = startCalendar + 1
Next