webForumDet fria alternativet

Returnerar 53 veckor på ett år ?!

ASP

11 svar · 543 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Frågan#1
<% varShowWeek = DatePart("ww", CDate("2003-12-29"))%>
Vecka: <%= varShowWeek %>

Hur är det möjligt att returnera V53? Nästa vecka blir V2? Varför blir det såhär. Hur får jag året att bara visa 52 veckor?

Hmmm...

Medlem sedan juli 20011 129 inlägg
#2

Testa DatePart("WW", cDate("2003-12-29"), 2, 2)
Eftersom Amerikanarna börjar veckorna på söndagar, vilket vi inte gör så ska detta fixa problemet.

Medlem sedan maj 20012 080 inlägg
#3

Vad betyder ,2,2 ?

Medlem sedan dec. 20003 887 inlägg
#4
varShowWeek = DatePart("ww", CDate("2003-12-29"), 2, 3)
Response.Write varShowWeek

2 = vbMonday (FirstDayOfWeek)
3 = vbFirstFullWeek (FirstWeekOfYear)

Medlem sedan juli 20011 129 inlägg
#5

FirstDayofWeek och FirstDayofYear

...

ja.. läs ovan :OO

Medlem sedan maj 20012 080 inlägg
#6

Intressant det här!

Om man kör följande datum nedan så får man följande resultat:
2003-12-28 = V52 (RÄTT)
2003-12-29 = V53 (FEL)
2003-12-30 = V1 (RÄTT)

<% varShowWeek = DatePart("ww", CDate("2003-12-30"),2,2)%>
Vecka: <%= varShowWeek %>

Om vi istället kör:
<% varShowWeek = DatePart("ww", CDate("2003-12-30"),2,3)%>
Vecka: <%= varShowWeek %>

så får vi:

2003-12-28 = V51 (FEL)
2003-12-29 = V52 (FEL)
2003-12-30 = V52 (FEL)

????

Medlem sedan dec. 20003 887 inlägg
#7

Lustigt med datum ibland... försök med

varShowWeek = DatePart("ww", CDate("2003-12-30"), 0, 0)

0 = vbUseSystemDayOfWeek
0 = vbUseSystem

Medlem sedan maj 20012 080 inlägg
#8

<% varShowWeek = DatePart("ww", CDate("2003-12-29"),2,0)%>
Vecka: <%= varShowWeek %>

RETURNERAR vecka: 53.

Det är enbart 2003-12-29 som visar fel vecka ??? Hjälp! :-)

Medlem sedan maj 20012 080 inlägg
#9

Kollar man i en riktig kalender så ser det ut så här:

27 V52
28 V52
29 V1
30 V1
31 V1
1 V1
2 V1
3 V1
4 V1
5 V2
6 V2

I och med att min kalender ritar ut gränssnittet från första dagen i veckan så blir hela vecka 1 fel om inte just datumet 2003-12-29 visar rätt vecka. :-(

Medlem sedan dec. 20003 887 inlägg
#10

Jo, så ser min ut också, men det hjälper inte ;)

Nu har jag testat alla varianter och inte hittat någon som visar rätt. Ett fel i datumhanteringen i VBScript? Eller har möjligtvis amerikanarna en 53:e vecka också?

Medlem sedan maj 20012 080 inlägg
#11

Jag borde få en T-shirt för att jag hittade en bug tycker jag! haha..

Tack för hjälpen killar. Alltid ett nöje att vara här! Workaround =

<% varShowWeek = DatePart("ww", CDate(varNextWeek+1),2,2)%>
Medlem sedan nov. 20017 144 inlägg
#12

Visst kan det vara 53 veckor ibland. Det kan bli en liten veckosnutt i slutet av december ju.

@nders skrev:

Ja, det beror på vad det är för veckodag den första januari. Det kan vara ett par decemberdagar i vecka 1, och det kan finnas en vecka 53 med ett par januaridagar i.

I Sverige är vecka 1 den första vecka med minst 4 januaridagar.

Mvh,

268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)