Hej Jag använder alltid nedanstående JavaScript till detta, men det kanske inte hjälper Dig. Det finns en känd bugg i DatePart funktionen angående veckonummren. Problemet uppstår eftersom det i år (2004) är 53 veckor.Fel veckonr för nästa år
Får inte rätt på veckonr för nästa år... De ligger en vecka i förväg.
Exempelvis får jag att det är vecka 2 för den 3 jan när det ska vara vecka 1.
Och så fortsätter det 10 jan blir v 3 ska vara 2... osv...
Använder mig av kodsnutten
<%
Veckonr = DatePart("ww",Datum)
%>
Och det har fungerat i alla år tidigare. Vad göra????
TackarSv: Fel veckonr för nästa år
Jag anropar så här: get_this_week("2005","01","03")
<!--
function WeekNbr(n) {
var P3D=259200000, P7D=604800000, y=n.getYear(), y=(y<1000?1900+y:y);
var s=Math.floor((Date.UTC(y,n.getMonth(),n.getDate())+P3D)/P7D);
tmp=new Date(s*P7D); j=tmp.getYear(); j=(j<1000?1900+j:j);
return 1+s-Math.floor((Date.UTC(j,0,4)+P3D)/P7D)
}
function get_this_week(aar,man,dag) {
var current_date = new Date(aar,man-1,dag);
var current_week = WeekNbr(current_date);
document.write(current_week);
}
-->
Kanske det hjälper Dig - kanske inte
/Henrik LyngeSv: Fel veckonr för nästa år
Testa detta
Veckonr= DatePart("ww",Datum,vbMonday, vbFirstFourDays)Sv: Fel veckonr för nästa år
Jag har i ett tidigare inlägg [Sv: konstigt veckonummer fel] skrivit om en lösning (VB) på problemet.
God Jul
JanneSv: Fel veckonr för nästa år
Här får du en funktion som klarar av detta:
<%
Function getWeek(YMD)
Dim N, Y, M, D, Tdy, Thu, SoY, YNo, WNo, DoW
Y = Left(YMD, 4)
M = Mid(YMD, 6, 2)
D = Right(YMD, 2)
N = 2
Tdy = DateSerial(Y, M, D)
Thu = ((Tdy+3+N) \ 7) * 7 - N
YNo = Year(Thu)
SoY = DateSerial(YNo, 1, 1)
WNo = ((Thu - SoY) \ 7) + 1
DoW = ((Tdy+5) mod 7) + 1
getWeek = WNo
End Function
Response.Write(getWeek("2004-12-29"))
%>
Datumformatet som skickas till funktionen ska vara: yyyy-mm-dd
Funktionen returnerar det veckonummer där datumet finns med.
Svenne