SsolbulleMedlem sedan mars 20015 287 inlägg Ingen fara.
Din är ide är kanon, det är bara det att det är ungefär precis vad jag håller på att försöka få plelkes till också.
Precis som i ditt script så har han några lösa funktioner som hittar någon speciell helg, samt en del andra "givna" helger, julafton mfl.
Jag tycker alltså också att han bör samla alltihop i en funktion som förslagsvis returnerar vilken helg det är. :)
PplelkesMedlem sedan mars 2002823 inlägg nicclas: som solbulle skrev så har jag redan en funktion som beräknar officiella svenska helgdagar...
solbulle:
låter intressant med din idée om funktion, men jag tycker att det verkar vara himla komplicerat. Men på min nybörjarnivå, så tycker jag att det är svårt att få ihop funktioner...
Och se´n var det ju med
Man får väl komma på ett vettigt sätt att skicka in datumet dock
Men jag provar gärna att ge mig på funktionskonstruktion.. Naturligtvis bara om du/ni är beredda att så pedagogiskt som möjligt vägleda och lära mig
PplelkesMedlem sedan mars 2002823 inlägg Funktionerna får vänta ett tag till.
För tillfället har jag fullt upp med if-then- else...
If intLastDayIndex =< 34 then
loopslut = 34
Else
loopslut = 41
End If
For i = 0 to loopslut
If i mod 7 = 0 Then Response.Write "<TR>"
If aKalender(i) < 1 Then
Response.Write "<TD BGCOLOR=""#000000"">"
Response.Write " _" & "</TD>"
Else
If cint(manad) = Month(GeAllhelgon(ar)) AND aKalender(i) = Day(GeAllhelgon(ar)) then
Response.Write "<TD ALIGN=""CENTER"" VALIGN=""MIDDLE""><CENTER><FONT COLOR=""#FF0000"" SIZE=""2"">"
Response.Write aKalender(i) & "</FONT>"
Response.Write "<P ALIGN=""CENTER""><FONT COLOR=""#FF0000"" SIZE=""2"">Alla helgonsdag</FONT></P>"
Response.Write "</CENTER></TD>"
End If
If int(manad) = Month(NewYearday(ar)) AND aKalender(i) = Day(NewYearday(ar)) then
Response.Write "<TD ALIGN=""CENTER"" VALIGN=""MIDDLE""><CENTER><FONT COLOR=""#FF0000"" SIZE=""2"">"
Response.Write aKalender(i) & "</FONT>"
Response.Write "<P ALIGN=""CENTER""><FONT COLOR=""#FF0000"" SIZE=""2""> Nyårsdagen</FONT></P>"
Response.Write "</CENTER></TD>"
End If
If int(manad) = Month(trettondag(ar)) AND aKalender(i) = Day(trettondag(ar)) then
Response.Write "<TD ALIGN=""CENTER"" VALIGN=""MIDDLE""><CENTER><FONT COLOR=""#FF0000"" SIZE=""2"">"
Response.Write aKalender(i) & "</FONT>"
Response.Write "<P ALIGN=""CENTER""><FONT COLOR=""#FF0000"" SIZE=""2""> Trettondagen</FONT></P>"
Response.Write "</CENTER></TD>"
Else
Response.Write "<TD ALIGN=""CENTER"" VALIGN=""MIDDLE""><CENTER><FONT COLOR=""#330099"">"
Response.Write aKalender(i)
Response.Write "</FONT></CENTER></TD>"
End If
End IF
Next
If i mod 6 = 0 And i <> 0 Then
Response.Write "</TR>"
End If
I ovanstående koden har jag tex misslyckats...
Som ni ser det här om ni kollar på november och januari..
I nedanstående kod:
If intLastDayIndex =< 34 then
loopslut = 34
Else
loopslut = 41
End If
For i = 0 to loopslut
If i mod 7 = 0 Then Response.Write "<TR>"
If aKalender(i) < 1 Then
Response.Write "<TD BGCOLOR=""#000000"">"
Response.Write " _" & "</TD>"
Else
If cint(manad) = Month(GeAllhelgon(ar)) AND aKalender(i) = Day(GeAllhelgon(ar)) then
Response.Write "<TD ALIGN=""CENTER"" VALIGN=""MIDDLE""><CENTER><FONT COLOR=""#FF0000"" SIZE=""2"">"
Response.Write aKalender(i) & "</FONT>"
Response.Write "<P ALIGN=""CENTER""><FONT COLOR=""#FF0000"" SIZE=""2"">Alla helgonsdag</FONT></P>"
Response.Write "</CENTER></TD>"
Else
Response.Write "<TD ALIGN=""CENTER"" VALIGN=""MIDDLE""><CENTER><FONT COLOR=""#330099"">"
Response.Write aKalender(i)
Response.Write "</FONT></CENTER></TD>"
End If
End IF
Next
If i mod 6 = 0 And i <> 0 Then
Response.Write "</TR>"
End If
fungerar det som ni kan se för januari men inte för november
Snälla hjälp mig så att jag kan förstå hur if-then-else skall konstrueras!
SsolbulleMedlem sedan mars 20015 287 inlägg Det du gör nu blir svårare...
Du måste köra med Elseif där.
Sen som du ser så blir det en attans upprepning av kod.
SsolbulleMedlem sedan mars 20015 287 inlägg If aKalender(i) < 1 Then
Response.Write "<TD BGCOLOR=""#000000"">"
Response.Write " _" & "</TD>"
Else
If cint(manad) = Month(GeAllhelgon(ar)) AND aKalender(i) = Day(GeAllhelgon(ar)) then
Response.Write "<TD ALIGN=""CENTER"" VALIGN=""MIDDLE""><CENTER><FONT COLOR=""#FF0000"" SIZE=""2"">"
Response.Write aKalender(i) & "</FONT>"
Response.Write "<P ALIGN=""CENTER""><FONT COLOR=""#FF0000"" SIZE=""2"">Alla helgonsdag</FONT></P>"
Response.Write "</CENTER></TD>"
ElseIf int(manad) = Month(NewYearday(ar)) AND aKalender(i) = Day(NewYearday(ar)) then
Response.Write "<TD ALIGN=""CENTER"" VALIGN=""MIDDLE""><CENTER><FONT COLOR=""#FF0000"" SIZE=""2"">"
Response.Write aKalender(i) & "</FONT>"
Response.Write "<P ALIGN=""CENTER""><FONT COLOR=""#FF0000"" SIZE=""2""> Nyårsdagen</FONT></P>"
Response.Write "</CENTER></TD>"
ElseIf int(manad) = Month(trettondag(ar)) AND aKalender(i) = Day(trettondag(ar)) then
Response.Write "<TD ALIGN=""CENTER"" VALIGN=""MIDDLE""><CENTER><FONT COLOR=""#FF0000"" SIZE=""2"">"
Response.Write aKalender(i) & "</FONT>"
Response.Write "<P ALIGN=""CENTER""><FONT COLOR=""#FF0000"" SIZE=""2""> Trettondagen</FONT></P>"
Response.Write "</CENTER></TD>"
Else
Response.Write "<TD ALIGN=""CENTER"" VALIGN=""MIDDLE""><CENTER><FONT COLOR=""#330099"">"
Response.Write aKalender(i)
Response.Write "</FONT></CENTER></TD>"
End If
End If
Next
Fast inte är det vackert inte.
PplelkesMedlem sedan mars 2002823 inlägg
Sen som du ser så blir det en attans upprepning av kod.
tur att man kan göra en Marjasin (dvs klippa - klistra)
Fast inte är det vackert inte.
Men förlorar jag ngt i effektivitet ????
Jag fattar fortfarande inte hur jag skulle få till med funktion*snyft*
Kan ng ge ett fungerande exempel med de tre helgdagarna - tack
PplelkesMedlem sedan mars 2002823 inlägg tilläg:
varför ElseIF ?
PS. : ditt förslag funkar naturligtvis!
PplelkesMedlem sedan mars 2002823 inlägg Jag har funderat mycket kring funktionsfrågan. Men jag får inte till det hela.
Fick ju följande föörslag från solbulle:
function helg(datum)
If datum = GeAllhelgon(datum) then
helg = "Allhelgona"
Elseif datum = GeJulafton(datum) then
helg = "Julafton"
Else
helg = "vardag" ' eller helt tomt iofs.
End iF
End function
Men varje helgdag består ju av datum/funktion själva..
Typ allhelgona
function GeAllhelgon(ar)
dteDate = ar & "-10" & "-31"
dteDate = CDate(dteDate)
intWeekday = WeekDay(dteDate, vbSunday)
newdate = dateAdd("d", 7-intWeekDay, dteDate)
GeAllhelgon = newdate
end function
Och nyårsdagen
function NewYearday(ar)
dteDate = ar & "-01" & "-01"
NewYearday = CDate(dteDate)
End function
SsolbulleMedlem sedan mars 20015 287 inlägg Upprepandet av kod.
Onödigt, tar väl kanske inte så mycket kraft, men blir ju som du märker jobbigt att ändra i o lätt att det blir fel. Som nu.
Har du en funktion, kanske du tex även kan använda dig av den på andra sidor osv.
Jag försöker alltid att göra allting så skalbart som möjligt, smaksak iofs.
Angående mitt förslag med funktion, det som den gör är ju att "samla ihop" dina funktioner i ett block.
Så syftet med det är egentligen bara att optimera koden.
Varför ElseIf?
Jo, för att annars blir det ju som så att inget skrivs ut om inte något villkor uppfylls.
PplelkesMedlem sedan mars 2002823 inlägg Så då har "den fula koden" inget effekt på hur bra sidan laddas eller andra funktioner?
För i så fall väljer jag nog hellre klippa -klistra metoden
PplelkesMedlem sedan mars 2002823 inlägg fast klart - jag tar gärna emot hjälp och förslag på hur jag kan "sy ihop" allt till en funktion :birp