webForumDet fria alternativet

kalender...

ASP

4 svar · 560 visningar · startad av Fredriksson

Medlem sedan nov. 2000319 inlägg
Frågan#1

Använder följande kod för att rita upp en kalender. Nu vill jag lägga till aktuell månad ovanför t ex "november" samt ha två pilar så man kan välja nästa eller föregående månad.

Nån som kan hjälpa mig med detta?


    <table border="0">
      <tr>
<%

nu = formatnumber(right(date,2),0)

dtmDate = Date()

For i = 1 To WeekDay(DateSerial(Year(dtmDate), Month(dtmDate), "01"), vbMonday) - 1
  Response.Write("        <td></td>" & vbCrLf)
  intCount = intCount + 1
Next

intDays = Day(DateAdd("d", -1, DateAdd("m", 1, DateSerial(Year(dtmDate), Month(dtmDate), "01"))))

For i = 1 To intDays
  If intCount Mod 7 = 0 AND intCount > 0 Then Response.Write("      </tr><tr>" & vbCrLf)

	if clng(nu) = clng(i) then
  Response.Write("        <td class='dagnu'>" & i & "</td>" & vbCrLf)
	else
  Response.Write("        <td class='dag'>" & i & "</td>" & vbCrLf)
	end if

  intCount = intCount + 1
Next

If intCount Mod 7 > 0 Then
  For i = (intCount Mod 7) + 1 To 7
    Response.Write("        <td></td>" & vbCrLf)
  Next
End If
%>
      </tr>
    </table>
Medlem sedan juni 20019 519 inlägg
#2

Ersätt:

dtmDate = Date()

Med:

If IsDate(Request.QueryString("date")) Then
    dtmDate = Request.QueryString("date")
Else
    dtmDate = Date()
End If

Response.Write "<tr><td colspan=""8"">"
Response.Write "<a href=""?date=" & CDate(DateAdd("m",-1,DateSerial(Year(dtmDate),Month(dtmDate),Day(dtmDate)))) & """><<</a> "
Response.Write  MonthName(Month(dtmDate))
Response.Write " <a href=""?date=" & CDate(DateAdd("m",1,DateSerial(Year(dtmDate),Month(dtmDate),Day(dtmDate)))) & """>>></a>"
Response.Write "</td></tr>"

ändra calender.asp till din fil där du har kaledern. Kan ha missat ( eller någon " också.

Medlem sedan nov. 2000319 inlägg
#3

Tack för svaret!

Funkar bra bortsett från en sak. När man byter månad så är den dagens datum (ex den 25:e) markerad även fast det inte är den 25:e i den månaden....

Medlem sedan juni 20019 519 inlägg
#4

det är för att din variabel:
"nu = formatnumber(right(date,2),0)" ta bara dagen.. och när du kontrollera det så kollar du inte om det är månad "februari" och år "2008"
... återkommer med en rätt kod.

Medlem sedan juni 20019 519 inlägg
#5
<table border="0">
	<tr>
<%
[b]Dim dtmDate, nu, intDays, i, intCount[/b]

If IsDate(Request.QueryString("date")) Then
	dtmDate = Request.QueryString("date")
Else
	dtmDate = Date()
End If

nu = [b]Date()[/b]
intDays = Day(DateAdd("d", -1, DateAdd("m", 1, DateSerial(Year(dtmDate), Month(dtmDate), "01"))))

Response.Write "<tr><td colspan=""8"">"
Response.Write "<a href=""?date=" & CDate(DateAdd("m",-1,DateSerial(Year(dtmDate),Month(dtmDate),Day(dtmDate)))) & """><<</a> "
Response.Write  MonthName(Month(dtmDate))
Response.Write " <a href=""?date=" & CDate(DateAdd("m",1,DateSerial(Year(dtmDate),Month(dtmDate),Day(dtmDate)))) & """>>></a>"
Response.Write "</td></tr>"

For i = 1 To WeekDay(DateSerial(Year(dtmDate), Month(dtmDate), "01"), vbMonday) - 1
	Response.Write("        <td></td>" & vbCrLf)
	intCount = intCount + 1
Next

For i = 1 To intDays
	If intCount Mod 7 = 0 AND intCount > 0 Then Response.Write("      </tr><tr>" & vbCrLf)
	
	[b]If day(nu) = clng(i) and year(nu) = Year(dtmDate) And Month(nu) = Month(dtmDate) Then[/b]
		Response.Write("        <td class='dagnu'>" & i & "</td>" & vbCrLf)
	Else
		Response.Write("        <td class='dag'>" & i & "</td>" & vbCrLf)
	End If

	intCount = intCount + 1
Next

If intCount Mod 7 > 0 Then
	For i = (intCount Mod 7) + 1 To 7
		Response.Write("        <td></td>" & vbCrLf)
	Next
End If

%>
	</tr>
</table>
252 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)