Hejdär, här kommer jag med mitt nästa bekymmer:
Jag vill kunna lista aktuell månads veckonummer, dvs för aug-03:
31, 32, 33, 34, 35.
Jag vet att veckonumret fås genom
<%
Option Explicit
%>
<html>
<head>
<title>All Weeks In Month</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
Dim dte
Dim intYear
Dim intMonth
Dim intDaysInMonth
Dim i
Dim strDate
Dim start
dte = Date()
intYear = Year(dte)
intMonth = Month(dte)
intDaysInMonth = GetDaysInMonth(dte)
For i = 1 TO intDaysInMonth step 7
strDate = intYear & "-" & intMonth & "-" & Right("0" & i,2)
start= CDate(strDate)
Response.write DatePart ("ww", start) & "<br>"
Next '## -- i --
%>
</body>
</html>
<%
Public Function GetDaysInMonth(ByVal dDate)
Dim iMonth
iMonth = Month(dDate)
Select Case iMonth
Case 1,3,5,7,8,10,12
GetDaysInMonth = 31
Case 2
If IsDate("February 29, " & Year(dDate)) Then
GetDaysInMonth = 29
Else
GetDaysInMonth = 28
End If
Case 2,4,6,9,11
GetDaysInMonth = 30
End Select
End Function
%>
Nedanstående kod listar datum och dagar för aktuell månad
<%
Dim aDagar(42)
Dim iDag
Dim dNewDate
Dim iWeekDay, sWeekDayName
dNewDate = Year(Date()) & "-" & Month(Date()) & "-" & iDag
For iDag = 1 to DatePart("d", DateSerial(Year(Date()), Month(Date())+1, 0)) 'da´n innan första dagen i
aDagar(iDag) = WeekDayName(DatePart("w",Year(Date()) & "-" & Month(Date()) & "-" & iDag))
Next
For iDag= 1 to DatePart("d", DateSerial(Year(Date()), Month(Date())+1, 0)) 'da´n innan första dagen i
response.write iDag &" " & aDagar(iDag) & "<br>"
next
%>
Nu behöver jag er hjälp med attfå fram veckonummren och lista de på dess rätta plats tex:
sätter en variabel, intDaysInMonth, med returvärdet från en funktion som har ett datum som argument. Retur värdet beror på vilken månad det är, 1, 2, 3 ... osv. Är det månad 1, 3, 5,7,8,10,12 så returneras 31 dagar, månad 2 kan ju ha antingen 28 eller 29 dagar. Så i Case 2 så måste jag göra en test om 29 februari är ett giltigt datum, är det det så returneras 29 annars 28. Sista case är de övriga månaderna som har 30 dagar.
Nästa konstighet:
For i = 1 TO intDaysInMonth step 7
Jag vet första datumet som ALLTID är 1 (start värdet i loopen).
Det den ska loopas mot är antal dagar som jag redan har "räknat" ut. MEN, det är här konstigheten kommer - step 7.
Dvs, jag kommer att börja på 1 och sedan "hoppa" 7 steg då varje vecka har 7 dagar.
Hoppas du förstod mitt lilla svammel här ovan, annars är det bara att fråga igen.
Tyvärr befinner jag mig på jobbet så jag kan ej prova, MEN
Jag vet första datumet som ALLTID är 1 (start värdet i loopen).
Det den ska loopas mot är antal dagar som jag redan har "räknat" ut. MEN, det är här konstigheten kommer - step 7.
Dvs, jag kommer att börja på 1 och sedan "hoppa" 7 steg då varje vecka har 7 dagar.
Gäller detta även för typ augusti 2003, som ju börjar på en fredag, och därför bara har "3 dagar"?
Spelar ingen roll "vilken dag" i veckan du räknar på.
Du vet ju att den första kommer i varje månad, om det sedan är dag 1 eller 6 eller 3 eller vilken dag i ordningen det är spelar ingen roll. Den kommer ändå att räkna ut vilken vecka som just det aktuella datumet befinner sig i.
Om datumet befinner sig på fredagen och du sedan steppar i steg om 7 kommer nästa datum att landa på nästkommande fredag osv ... MEN, veckonummret för den aktuella veckan kommer att ges.
cya,
/PatrikB
259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e