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...
Annonceindlæg fra Infor
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; %>