webForumDet fria alternativet

Datum på måndag om jag vet år och veckonr?

ASP

5 svar · 471 visningar · startad av HammerBoy

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

Jag vet år.
Jag vet veckonummer.
Jag vill loopa ut veckans 7 datum från måndag till söndag.
Fångar jag bara måndagens datum så kan jag fixa resten själv.

input:
ar = 2009
vecka = 1

Output:
Måndag 2008-12-29
Tisdag 2008-12-30
Onsdag 2008-12-31
Torsdag 2009-01-01
Fredag 2009-01-02
Lördag 2009-01-03
Söndag 2009-01-04

Medlem sedan dec. 20025 483 inlägg
#2

Översatt från http://dotnetslackers.com/Community/blogs/xun/archive/2008/06/26/get-the-monday-date-of-a-given-week-in-a-given-year.aspx:

function f(y, w)
  dim d, m
  d = cdate("1/1/" & y)
  m = dateadd("d", 1 - datepart("w", d, 2, 2), d)
  f = dateadd("d", (w - 1) * 7, m)
end function

response.write f(2009, 1)
Medlem sedan feb. 20011 198 inlägg
#3

Eller såhär:
Knackade ihop det med en hand.

function getWeekDate(y,ww)
d=cdate("1900-01-01")
msgbox d
d=DateAdd("yyyy",y-1900,d)
msgbox d
d=DateAdd("ww",ww-1,d)
getWeekDate=d
end function
function getMonday(in_date)
getMonday=(weekday(in_date,3))*-1
end function
wd=getWeekDate(2009,7)
dmon=DateAdd("d", getMonday(wd),wd)
msgbox dmon
Medlem sedan feb. 2006144 inlägg
#4

Peter S skrev:

Översatt från http://dotnetslackers.com/Community/blogs/xun/archive/2008/06/26/get-the-monday-date-of-a-given-week-in-a-given-year.aspx:

function f(y, w)
  dim d, m
  d = cdate("1/1/" & y)
  m = dateadd("d", 1 - datepart("w", d, 2, 2), d)
  f = dateadd("d", (w - 1) * 7, m)
end function

response.write f(2009, 1)

Precis! Perfekt! Lysande! Works like a charm :birp
Tack och bock :)

Medlem sedan feb. 2006144 inlägg
#5

yohpops skrev:

Eller såhär:
Knackade ihop det med en hand.

function getWeekDate(y,ww)
d=cdate("1900-01-01")
msgbox d
d=DateAdd("yyyy",y-1900,d)
msgbox d
d=DateAdd("ww",ww-1,d)
getWeekDate=d
end function
function getMonday(in_date)
getMonday=(weekday(in_date,3))*-1
end function
wd=getWeekDate(2009,7)
dmon=DateAdd("d", getMonday(wd),wd)
msgbox dmon

Kunde inte låta bli att testa även din kod och även den fungerar perfekt! Peter S "vinner" på färre kodrader men tack ändå :)

Medlem sedan feb. 20011 198 inlägg
#6

Fixade lite:

function getMonday(y,ww)
d=DateAdd("ww",ww-1,cdate(y&"-01-01"))
getMonday=DateAdd("d", (weekday(d,3))*-1,d)
end function
response.write getMonday(2009,7)
255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)