Avatar billede neoman Novice
12. november 2007 - 13:05 Der er 4 kommentarer og
1 løsning

Finde anden tirsdag i måneden

Har nogen tilfældigvis en stump kode til at finde datoen for en bestemt ugedags n'te forekomst i en specificeret måned (og år) ? F.eks., hvis jeg ønsker at finde den anden tirsdag i måneden ?

Jeg efterspørger specifikt en programstump, ikke forslag til hvordan det kan gøres:)
Avatar billede roenving Novice
12. november 2007 - 14:55 #1
onclick="alert(getNthWeekDayOfMonth(2,5,2007,11));"

<script language="javascript" type="text/javascript">
function getNthWeekDayOfMonth(n,weekday,year,month){
  var today = new Date(), numDay = 0, date = 1;
  var theFirst = (year) ? new Date(year,month-1,1) : new Date(today.getFullYear(),today.getMonth(),1);
  alert(numDay + " " + n);
  var actWD = theFirst.getDay();
  while(n > numDay){
    if(actWD == weekday)
      numDay++;
    actWD = ++actWD%7;
    date++;
  }
  return date;
}
</script>

-- bemærk, at ugedage er med søndag = 0, mandag = 1 til lørdag = 6 !-)
Avatar billede roenving Novice
12. november 2007 - 14:58 #2
Kaldet finder altså den anden fredag i en måned ...

Du kan også kalde uden at angive måned og år, f.eks. getNthWeekDayOfMonth(2,2) hvor det så vil være den aktuelle måned ...

-- og linjen med den første skal nok være:

  var theFirst = (month) ? new Date(year ...

-- så en fejl-tastning med kun årstal ignoreres !o]
Avatar billede neoman Novice
12. november 2007 - 15:16 #3
takker - læg et svar.

Den leger jeg videre med. Har lige spildt nogle timer i nat på at slås med getFullYear, hvor år er år, dage er dage, men måneder er 0-11 i stedet for de forventede 1-12 !!! (sådan går det når man ikke læser docs, men ANTAGER ting) :-/ !!
Avatar billede roenving Novice
13. november 2007 - 00:25 #4
Tjah, og du er ikke den første der undres over at ECMA-script standarden angiver et index til måneder, mens resten af Date-objektets parametre og funktionsværdier  er til værdier (lige undtaget ugedage !-)

Velbekomme '-)
Avatar billede roenving Novice
15. november 2007 - 00:30 #5
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester