Jag har 2 selectboxar, 1 där jag väljer år och en där jag väljer vecka... Jo lite krångligt... men de här ser ut att fungera: Intressant fråga! Så här borde en enkel lösning bli... Eftersom vårt veckosystem är bestämt så att den vecka som innehåller minst fyra dagar av det nya året. KAn första januari var en vecka från förra året.Svår datumnöt!
Kruxet är...om jag väljer år 2003 och vecka 6 så ska jag spara ett startDatum och ett slutDatum, jag vill få ut måndagen i den veckan, 2003-02-03, för startDatum, till söndagen 2003-02-09 som slutDatum i varsin variabel....
Hoppas nån förstår?
Tack!Sv: Svår datumnöt!
<%
Yearet = "2003"
Veckan = "6"
Mandagen = DateAdd("ww",veckan,Yearet & "-01-01") - 9
Sondagen = DateAdd("ww",veckan,Yearet & "-01-01") - 3
Response.Write Mandagen & " - " & Sondagen
%>Sv: Svår datumnöt!
Hur har du fått fram det Daniel?
Såg rätt ut först, men det fungerar bara för år 2003, tyvärr.
(enligt mina beräkningar iaf)Sv: Svår datumnöt!
<%
y = 2003
v = 12
v = v - 1
datum = cdate(y & "-01-01")
' Måndag v 1
mandag = dateadd("d",((datepart("w",datum,0)*-1)+1),datum)
' Måndag ef + x veckor
mandag = dateadd("ww",v,mandag)
' Sex dagar senare brukar söndag vara... =)
sondag = dateadd("d",6,mandag)
response.write(mandag & "----|----" & sondag)
%>Sv: Svår datumnöt!
Denna funktion bör blocka fram måndagen i veckan.
<code>
Public Function FirstDayOfWeek(Year, Week)
Dim TempDate
'Tar fram en dag för vecka ett
TempDate = DateSerial(Year, 1, 1)
Do Until DatePart("ww", TempDate, vbMonday, vbFirstFourDays) = 1
TempDate = TempDate + 7
Loop
'Loppar fram till rätt vecka
TempDate = TempDate + (7 * (Week - 1))
'Plockar fram måndag
FirstDayOfWeek = TempDate - Weekday(TempDate, vbMonday) + 1
End Function
</code>
Sedan är det enkelt att plocka ut värdena du önskar:
<code>
Dim startDatum
Dim slutDatum
startDatum = FirstDayOfWeek(2003, 6)
slutDatum = startDatum + 6
</code>