webForumDet fria alternativet

Bläddring i Kalender

ASP

4 svar · 348 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Frågan#1

Tja
Har gjort en kalender, där man kan bläddra mellan år och månader, aktuell dag visas osv.

Nu vill jag göra om den här bläddringen lite, så att det högst upp i kalenderna ska stå ex.

<  April 2005  >

"Pilarna" ska vid knapptryckning ändra månad i första hand, så vid ett tryck på tex. den högra ovan, ska det när sidan laddas om stå:

<  Maj 2005  >

När man kommer till December därimot, ska månaden ändras till Januari och året till 2006. Givetvis gäller samma sak (fast tvärtom då..) på "minuspilen".

Jag skickar med vald dag i en querystring just nu, som heter "sDat" och kan se ut ungefär såhär:

?sDat=2005-04-23

Här även delat upp den i min kod redan i tre variabler:

sAr = Året (tex. 2005)
sMan = Månad (tex. 04)
sDay = Dagen (tex. 23)

Har suttit här och funderat på det här ett tag nu, men kommer ingenstans. Har även i vanlig ordning sökt en del innan jag skrev det här, men hittar inte något som hjälper mig på traven.

Tack!

Medlem sedan juni 200032 967 inlägg
#2

Det är bara att skapa ett datum som gäller månaden i fråga, och lägga till / ta bort en månad med DateAdd(). Skicka det nya datumet i querystring.

Medlem sedan feb. 20034 441 inlägg
#3

Löste det precis innan jag såg att du svarat:

Function cLink(y, mM)
	m = mM
	Select Case m
		Case 01	: pL = "?sDat=" & y - 1 & "-12" : nL = "?sDat=" & y & "-02"
		Case 02	: pL = "?sDat=" & y & "-01" : nL = "?sDat=" & y & "-03"
		Case 03	: pL = "?sDat=" & y & "-02" : nL = "?sDat=" & y & "-04"
		Case 04	: pL = "?sDat=" & y & "-03" : nL = "?sDat=" & y & "-05"
		Case 05	: pL = "?sDat=" & y & "-04" : nL = "?sDat=" & y & "-06"
		Case 06	: pL = "?sDat=" & y & "-05" : nL = "?sDat=" & y & "-07"
		Case 07	: pL = "?sDat=" & y & "-06" : nL = "?sDat=" & y & "-08"
		Case 08	: pL = "?sDat=" & y & "-07" : nL = "?sDat=" & y & "-09"
		Case 09	: pL = "?sDat=" & y & "-08" : nL = "?sDat=" & y & "-10"
		Case 10	: pL = "?sDat=" & y & "-09" : nL = "?sDat=" & y & "-11"
		Case 11	: pL = "?sDat=" & y & "-10" : nL = "?sDat=" & y & "-12"
		Case 12	: pL = "?sDat=" & y & "-11" : nL = "?sDat=" & y + 1 & "-01"
	End Select
	Response.Write("<a href=""" & pL & """>&lt;</a> | <font class=""txt"">" & UCase(Left(MonthName(mM), 3)) & " " & y & "</font> | <a href=""" & nL & """>&gt;</a>")
End Function

Inte världens finaste lösning kanske, men det funkar precis som jag vill.

Kanske man kan fina till koden ovan lite?

Medlem sedan apr. 20031 660 inlägg
#4

HEJ!

Klart du kan fina till koden, din case-sats är helt onödig.
Med hjälp av DateAdd som @nders föreslår blir det mycket enklare.

Response.Write "<a href=""" & DateAdd(M, -1, datum)  & """>&lt;</a>" & _
| "<font class=""txt"">" & UCase(MonthName(Month(datum),True)) & " " & Year(datum) & "</font>" & _
| "<a href=""" & DateAdd(M, +1, datum) & """>&gt;</a>"

Du behöver inte heller använda Left för att ta ut de tre första bokstäverna ur månadsnamnet, det fixar Monthname själv.http://www.devguru.com/technologies/wml/vbscript/quickref/monthname.html

Medlem sedan feb. 20034 441 inlägg
#5

Jo, det där ser ju helt klart bättre ut.
Men just då när jag var tvungen att fixa det där så var jag inte tillräckligt klar i huvudet för att tänka efter.

Tack, ska prova ovanstående.

260 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)