21. oktober 2003 - 00:49Der er
9 kommentarer og 1 løsning
Beregner datoerne for mandag i uge xx
Hej!
Jeg har følgende:
<%
intYear = 2003
For y = 1 to 52 Response.Write "<td align=""center"" width=""200""><a href=""kalender.asp?"">" & y & "</a></td>" temp = y / 4 If (y / 4) = Round(temp) Then Response.Write "</tr><tr>" End If Next %>
Som du nok kan regne ud laver den 52 felter til 52 uger.
Jeg vil gerne have lavet links i disse felter (der hvor a href> er sat ind) som ser ud som 20-10-2003, disse links skal så vise hen til mandagen i uge xx.
Lad os tage et eksempel:
Jeg klikker på uge 43 (det er i denne uge) og kommer derved hen til et link hvor kalender.asp?date=20-10-2003
Til rådighed for at beregne ugernes links er der variablen intYear.
Måske findes der en lettere måde, men følgende returnerer i hvertfald alle mandage på det år, du kalder funktionen med.
<% Function Mandage(Aar) StartDato = "07-01-" & Aar While DatePart("ww", StartDato) <> 1 StartDato = DateAdd("d", -1, StartDato) Wend While DatePart("w", StartDato, 0) <> 1 StartDato = DateAdd("d", -1, StartDato) Wend For i = 0 To 52 Dato = DateAdd("d", i*7, StartDato) If DateDiff("d", StartDato, Dato) <= 365 Then Mandage = Mandage & Dato & "<br>" Next End Function
Response.Write Mandage(2003) %>
Synes godt om
Slettet bruger
21. oktober 2003 - 10:22#2
"Og hvad så når der er 53 uger?"
Øhh...der er altid 52 kalenderuger på et år.
Iøvrigt kom jeg i tanke om at det jo er meget nemmere bare at tildele uge 1 01-01-2004 og uge 2 08-01-2004 på den måde vil det altid passe, med forbehold for skudår osv. Men det må jeg lige tænke over...
Nah ikke rigtigt, jeg har pillet lidt med noget andet, men du må gerne lægge et svar alligevel. Jeg fik lidt inspiration :)
Synes godt om
Slettet bruger
21. oktober 2003 - 21:50#9
Men du må meget gerne afprøve nedenstående kode og se om du kan finde nogen fejl ved funktionaliteten, jeg er PHP mand, men koder til nøds lidt ASP.
Jeg har fået skudår til at virke, men jeg mangler en eller anden form for kalender at holde min side op mod, da jeg har svært bed at gennemskue om den regner rigtigt ;)
<% Function GetFirstDayOfWeek(intWeekNumber, intYear) Dim intFirstOfYear, intFirstWeek, intSecondWeek intFirstOfYear = Weekday(CDate("1/1/" & intYear))
Select Case intFirstOfYear Case 1: intFirstWeek = 0 Case 2: intFirstWeek = -1 Case 3: intFirstWeek = -2 Case 4: intFirstWeek = -3 Case 5: intFirstWeek = -4 Case 6: intFirstWeek = -5 Case 7: intFirstWeek = -6 End Select
If intFirstWeek < 0 Then intWeekNumber = intWeekNumber - 1 End If
GetFirstDayOfWeek = DateAdd("d", intFirstWeek, DateAdd("WW", intWeekNumber, CDate("1/1/" & intYear))) End Function %>
If ugedag = "sø" Then ugenummer = ugenummer - 1 End If
Select Case ugedag
Case "ma" ugedag = "Mandag"
Case "ti" ugedag = "Tirsdag"
Case "on" ugedag = "Onsdag"
Case "to" ugedag = "Torsdag"
Case "fr" ugedag = "Fredag"
Case "lø" ugedag = "Lørdag"
Case "sø" ugedag = "Søndag"
Case Else
End Select
%>
Kalender for <strong><% Response.Write ugedag %> <% Response.Write Request("date") %>, der ligger i uge <% Response.Write ugenummer %></strong><br>Her er så noget andet indhold</td> </tr> <tr> <td>
'Hvis d. 26 dec. var en lørdag eller søndag skal uge 53 optræde uge53 = 1
End If
'Uge 53 indeholder altid datoen 2. januar året efter, 'men uge 53 eksisterer kun 'hvis 26. december var en lørdag eller en søndag.
End If
For y = 1 to 52 Response.Write "<td height=""25"" align=""center"" width=""200""><a href=""kalender.asp?date=" Response.Write (GetFirstDayOfWeek("" & y & "", "" & intYear & "")+1) Response.Write """>" & y & "</a></td>" temp = y / 4 If (temp) = Round(temp) Then Response.Write "</tr><tr>" End If Next
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.