30. december 2003 - 14:06
Der er
5 kommentarer og
1 løsning
Problem med ugenr.
Hej
Jeg bruger følgende til at finde ugenummeret for dags dato (d. 30. december 2003):
uge = DatePart("ww", date(), vbMonday, vbFirstFourDays)
Dette returnerer uge 1 ?!?! Hvordan kan det mon være? Fjerner jeg "vbFirstFourDays" får jeg uge 53 ?!
Jeg skulle meget gerne få værdien "52" tilbage med dette...
30. december 2003 - 14:34
#5
Puha - jeg blev lige bange for at mine kalendre viste forkert, men jeg regner ugen ud vha java script:
<%
var kaldato=new Date(Y, M-1, 1)
var mde = ["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"];
var uge = ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø"];
function DaysInMonth(Month, Year) {
var _Date = new Date(Year, Month, 1)
var _LastDate = new Date()
_LastDate = new Date(_Date)
_LastDate.setMonth(_Date.getMonth() + 1)
_LastDate.setHours(_LastDate.getHours() - 24)
return( _LastDate.getDate())
}
function yday(y,m,d) {
// d = 1..31, m = 0..11, y = xxxx
var yd = d + daysInPastMonths[m];
if (m > 1) {
if (y % 4 == 0) yd++;
if (y % 100 == 0) yd--;
if (y % 400 == 0) yd++;
}
return yd;
}
var daysInPastMonths = new Array(0,31,59,90,120,151,181,212,243,273,304,334);
function ugenummer (d,m,y) {
var t,wd,yd,thisThursday,week,nY,pY;
// d:1..31 m:0..11 y:fircifret årstal
//#en dag har samme ugenr som torsdagen i samme uge
t = new Date (y,m,d);
wd = t.getDay();
yd = yday(y,m,d);
if (wd == 0) wd = 7;
d = d + 4 - wd;
yd = yd + 4 - wd;
nY = (m == 11); if (nY) nY = (d > 31);
pY = (m == 0); if (pY) pY = (d < 1);
if (nY) {
m= 0; d= d-31; y++;
yd = yday(y,m,d);
} else if (pY) {
m=11; d= d+31; y--;
yd = yday(y,m,d);
}
thisThursday = yd;
t = new Date (y,0,1);
wd = t.getDay();
yd = yday(y,0,1);
if (wd > 4) wd = wd - 7;
yd = yd + 4 - wd;
week = (thisThursday - yd) / 7 + 1;
return week;
}
var nodays = DaysInMonth(kaldato.getMonth(), kaldato.getYear())
var _Dato = kaldato;
var ugedag;
%>