Avatar billede Jman Praktikant
04. januar 2002 - 09:32 Der er 5 kommentarer og
1 løsning

dropdownboks med predefineret ugenummer

Kan man lave en dropdown boks med alle ugenumre og hvor default i dropdown svarer til indeværende ugenummer ?
Og hvis ja - hvordan ?
Avatar billede Slettet bruger
04. januar 2002 - 17:40 #1
Funktionen getWeekNr() er taget herfra:
http://www.xs4all.nl/~ppk/js/week.html

<select name=\"sel1\">
<script>
function getWeekNr() {
    var today = new Date();
    Year = takeYear(today);
    Month = today.getMonth();
    Day = today.getDate();
    now = Date.UTC(Year,Month,Day+1,0,0,0);
    var Firstday = new Date();
    Firstday.setYear(Year);
    Firstday.setMonth(0);
    Firstday.setDate(1);
    then = Date.UTC(Year,0,1,0,0,0);
    var Compensation = Firstday.getDay();
    if (Compensation > 3) Compensation -= 4;
    else Compensation += 3;
    NumberOfWeek =  Math.round((((now-then)/86400000)+Compensation)/7);
    return NumberOfWeek;
}

ugenr = getWeekNr();

for (i = 1; i <= 52; i++) {
if (i == ugenr) document.write(\'<option value=\"uge\' + i + \'\" selected>Uge \' + i + \'</option>\');
else document.write(\'<option value=\"uge\' + i + \'\">Uge \' + i + \'</option>\');
}
</script>
</select>
Avatar billede Slettet bruger
04. januar 2002 - 17:44 #2
Ups, jeg mangler selvfølgelig lige funktionen takeYear()!
Her er den færdige kode:

<html>
<head>
</head>
<body>
<form name=\"frm\">
<select name=\"sel1\">
<script>
function takeYear(theDate) {
    x = theDate.getYear();
    var y = x % 100;
    y += (y < 38) ? 2000 : 1900;
    return y;
}

function getWeekNr() {
    var today = new Date();
    Year = takeYear(today);
    Month = today.getMonth();
    Day = today.getDate();
    now = Date.UTC(Year,Month,Day+1,0,0,0);
    var Firstday = new Date();
    Firstday.setYear(Year);
    Firstday.setMonth(0);
    Firstday.setDate(1);
    then = Date.UTC(Year,0,1,0,0,0);
    var Compensation = Firstday.getDay();
    if (Compensation > 3) Compensation -= 4;
    else Compensation += 3;
    NumberOfWeek =  Math.round((((now-then)/86400000)+Compensation)/7);
    return NumberOfWeek;
}

ugenr = getWeekNr();

for (i = 1; i <= 52; i++) {
if (i == ugenr) document.write(\'<option value=\"uge\' + i + \'\" selected>Uge \' + i + \'</option>\');
else document.write(\'<option value=\"uge\' + i + \'\">Uge \' + i + \'</option>\');
}
</script>
</select>
</form>
</body>
</html>
Avatar billede Jman Praktikant
07. januar 2002 - 08:22 #3
Det ser da fornuftigt ud - skal det blot sættes ind i stedet for option-felterne (jeg har lavet alle 53 uger (og hvad sker der i de år, hvor der er 53 uger ?)
Avatar billede Slettet bruger
07. januar 2002 - 12:50 #4
Der er da ikke noget, der hedder \"Uge 53\", er der?

Ja, du skal bare sætte scriptet ind istedet for din select!
Avatar billede Jman Praktikant
07. januar 2002 - 13:04 #5
jeg ville mene at det var uge 53, når f.eks nytårsaften starte i en ny uge - men jeg kan da godt se at min outlook foreslår uge 1 i det gamle år
Avatar billede Slettet bruger
07. januar 2002 - 17:04 #6
Det ville jeg også umiddelbart gøre! :)

Tak for points!
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