Avatar billede omansf Nybegynder
27. august 2001 - 12:19 Der er 6 kommentarer og
2 løsninger

Få Vist Antal dage i en måned

Jeg har brug for en funktion der kan finde ud af hvor mange dage der er i en given måned. Der skal tages højde for skudår osv. Er der nogen der kan hjælpe mig
Avatar billede netsrac Praktikant
27. august 2001 - 12:25 #1
Hm...

Function getDay(aar, maaned)
tmpdato = \"01-\" & maaned & \"-\" & aar
Do while month(tmpdato) = month
getDay = Day(tmpdato)
tmpdato = dateadd(\"d\", 1, tmpdato)
Loop
End function
Avatar billede jkjaers Nybegynder
27. august 2001 - 12:26 #2
Her er en funktion der gør det:

<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">
<!--
var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var dayList, monthList, yearList, thisDate;

function initList(){
  thisDate  = new Date();
  dayList  = \"<select name=\\\"day\\\" size=\\\"1\\\">\\n\";
    dayList  += generateList(1, days[thisDate.getMonth()], thisDate.getDate() );
    dayList  += \"</select>\\n\";
    monthList = \"<select name=\\\"month\\\" size=\\\"1\\\" onChange=\\\"formatDate(this.form);\\\">\\n\"
    monthList += generateList(1, 12, (thisDate.getMonth() + 1) );
    monthList += \"</select>\\n\"
    yearList  = \"<select name=\\\"year\\\" size=\\\"1\\\" onChange=\\\"formatDate(this.form);\\\">\\n\"
    tmpYear=navigator.appName==\"Netscape\"?thisDate.getYear()+1900:thisDate.getYear();
    yearList  += generateList(1995, tmpYear, tmpYear );
    yearList  += \"</select>\\n\"
}

function generateList( start, stop, curVal ){
  var tmpVar = \"\";
    for( i = start; i <= stop; i++ ){
      tmpVar += \"<option value=\\\"\" + i + \"\\\"\" + (i == curVal?\" selected\":\"\") + \">\" + i + \"</option>\\n\";
    }
  return tmpVar;
}

function formatDate( form ){
    dValue  = form.day[form.day.selectedIndex].value
    mValue = form.month[form.month.selectedIndex].value;
    yValue  = form.year[form.year.selectedIndex].value;
    form.day.options.length = 0;
    days[1]=(yValue%4==0&&yValue%100!=0)||(yValue%400==0)?29:28;
    for (i = 0; i < days[mValue - 1]; i++) {
      form.day.options[i] = new Option(i + 1, i + 1);
        if( i == dValue ){
          form.day.selectedIndex = i - 1;
        }
    }
    if(form.day.selectedIndex<=0&&dValue!=1){
      form.day.selectedIndex = thisDate.getDate() - 1;
    }
}
initList();
document.write(\"<html>\\n<body>\\n<form name=\\\"form\\\">\\n\");
document.write(dayList + monthList + yearList);
document.write(\"</form></body></html>\");
//-->
</SCRIPT>
Avatar billede netsrac Praktikant
27. august 2001 - 12:27 #3
jkjaers >> Prøv at kigge på kategorien :)
Avatar billede jkjaers Nybegynder
27. august 2001 - 12:29 #4
Min fejl, men det er stadig et godt script :D
Avatar billede netsrac Praktikant
27. august 2001 - 12:32 #5
jkjaers >> Den tager vist heller ikke højde for skudår, gør den ?
Avatar billede jkjaers Nybegynder
27. august 2001 - 12:35 #6
Jo den gør, prøv at tage februar 2000...
Avatar billede sone Nybegynder
27. august 2001 - 14:01 #7
netsrac: Hvad med gå én måned frem og derefter trække én dag fra - det må da være hurtigere end at lave så mange DateAdd.
Avatar billede netsrac Praktikant
27. august 2001 - 14:02 #8
sone >> Du siger noget.
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
Kurser inden for grundlæggende programmering

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