24. september 2008 - 18:41Der er
7 kommentarer og 1 løsning
omregning af uge nr til en dato
jeg har en gammel asp funktion som jeg godt vil have lavet om til en javascript funktion - kan nogen hjælpe ? udgang punktet er at jeg har en dag, et uge nr og et år, som jeg vil have omregnet til en dato.
eks. lørdag i uge 39 2008 (dag 6 - uge 39 - år 2008 skulle gerne give den 27-09-2008
funktionen skal tage højde for at 1. januar kan falde i uge 1 og at der i nogle år er 53 uger. min gamle funktion i asp ser sådan ud:
Function UgeTilDato(aar,uge,dag) januar1 = DateSerial(aar, 1, 1) ugedagjan1 = Weekday(januar1, vbMonday) if ugedagjan1 <= 4 then '1. januar er i uge 1 mandaguge1 = DateAdd("d", -ugedagjan1+1, januar1) else '1. januar er i sidste uge foregående år mandaguge1 = DateAdd("d", 7-ugedagjan1+1, januar1) end if
mandagugex = DateAdd("ww", uge-1, mandaguge1) xdagugex = DateAdd("d", dag-1, mandagugex) UgeTilDato = xdagugex End Function
function getFirstDayInWeek(nWeek, nYear) { var nDayCoeff = 24*60*60*1000; nYear = typeof nYear=="number" ? nYear : new Date().getFullYear(); var oTestDate = new Date(nYear, 0, 1);
return new Date( (oTestDate.getTime()-((oTestDate.getDay()-1)*nDayCoeff))+((nWeek-1)*(7*nDayCoeff)) ); }
var oDate = getFirstDayInWeek(39); alert(oDate); alert(oDate.getDate()+"-"+(oDate.getMonth()+1)+"-"+oDate.getYear());
var oDate = getFirstDayInWeek(39, 2006); alert(oDate); alert(oDate.getDate()+"-"+(oDate.getMonth()+1)+"-"+oDate.getYear());
Jeg har ikke lige tid til at slanke den. Umiddelbart ser den lidt voldsom ud, men jeg har en masse andre koder summende rundt i cellen, så det bliver ikke lige nu, den bliver slanket.
Kommer roenving forbi, vil han sikkert gerne kikke på den. Faktisk tror jeg ikke, han kan undlade. Schhhhh ... du har det ikke fra mig, men han har tenderer asymptotisk mod begrebet 'Date object fetishist' ;D
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.