Avatar billede krisse Nybegynder
27. september 2001 - 15:56 Der er 18 kommentarer og
1 løsning

datoproblemer

Jeg har en større opgave til den absolutte javas-haj

Jeg har fundet noget kode, men kunne godt tænke mig at ændre lidt i det.

Koden udskriver dagens dato, men scroller man ned bliver dagen hængende hele måneden. Derudover kunne jeg godt tænke at der blev vist to eller måske tre måneder fremad.

Jeg afleverer hele koden her, så man bare kan kopi-paste den:


<!-- start-->

<html>
<head>
<title></title>
</head>
<body>



<SCRIPT LANGUAGE=\"JavaScript\">

today = new Date();
thismonth = today.getMonth()+1;
        if (thismonth == 0) {
              monthname = \"januar\"
        } else if (thismonth == 1) {
            monthname  = \"februar\"
        } else if (thismonth == 2) {
            monthname  = \"marts\"
        } else if (thismonth == 3) {
              monthname  = \"april\"
        } else if (thismonth == 4) {
              monthname  = \"marts\"
        } else if (thismonth == 5) {
              monthname  = \"maj\"
        } else if (thismonth == 6) {
              monthname  = \"juni\"
        } else if (thismonth == 7) {
              monthname  = \"juli\"
        } else if (thismonth == 8) {
              monthname  = \"august\"
        } else if (thismonth == 9) {
              monthname  = \"oktober\"
        } else if (thismonth == 10) {
              monthname  = \"november\"
        } else if (thismonth == 11) {
              monthname  = \"december\"
        } else {
        monthname  = \"fejl\"
        }


thisyear = today.getYear();
thisday = today.getDate();
day = today.getDay();

        if (day == 0) {
              dayname = \"Søndag\"
        } else if (day == 1) {
            dayname = \"Mandag\"
        } else if (day == 2) {
            dayname = \"Tirsdag\"
        } else if (day == 3) {
              dayname = \"Onsdag\"
        } else if (day == 4) {
              dayname = \"Torsdag\"
        } else if (day == 5) {
              dayname = \"Fredag\"
        } else if (day == 6) {
              dayname = \"Lørdag\"
        } else {
        dayname = \"fejl\"
        }



montharray=new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
maxdays=montharray[thismonth-1];
if (thismonth==2) {
if ((thisyear/4)!=parseInt(thisyear/4)) maxdays=28;
else maxdays=29;
}
thismonth = \"\" + thismonth
if (thismonth.length == 1) {
thismonth = \"0\" + thismonth;
}
document.write(\"<form>\");
document.write(\"<select name=dates size=1>\");
for (var theday = 1; theday <= maxdays; theday++) {
var theday = \"\" + theday;
if (theday.length == 1) {
theday = \"0\" + theday;
}
document.write(\"<option\");
if (theday == thisday) document.write(\" selected\");
document.write(\">\");
document.write(dayname + \" \" + theday + \". \" + monthname +\" \" + thisyear);
}
document.write(\"</select></form>\");

</SCRIPT>
</body>
</html>

<!--slut-->
Avatar billede bbs Nybegynder
27. september 2001 - 16:03 #1
Prøv denne:

<p align=\"center\"><font size=\"2\" face=\"Verdana\"><SCRIPT language=JavaScript>
var now = new Date();
var monthName = now.getMonth() + 1;var dayName = now.getDay() + 1;
var dayNumber = now.getDate();if(dayName==1) Day = \"Søndag\";
if(dayName==2) Day = \"Mandag\";if(dayName==3) Day = \"Tirsdag\";
if(dayName==4) Day = \"Onsdag\";if(dayName==5) Day = \"Torsdag\";
if(dayName==6) Day = \"Fredag\";if(dayName==7) Day = \"Lørdag\";
if(monthName==1) Month=\"Januar\";if(monthName==2) Month=\"Februar\";
if(monthName==3) Month=\"Marts\";if(monthName==4) Month=\"April\";
if(monthName==5) Month=\"Maj\";if(monthName==6) Month=\"Juni\";
if(monthName==7) Month=\"Juli\";if(monthName==8) Month=\"August\";
if(monthName==9) Month=\"September\";if(monthName==10) Month=\"Oktober\";
if(monthName==11) Month=\"November\";if(monthName==12) Month=\"December\";
document.open();document.write( Day + \" d. \" + dayNumber + \" \" + Month);</SCRIPT>
Avatar billede krisse Nybegynder
27. september 2001 - 16:11 #2
Den skriver kun dagens dato ud. Jeg er interesseret i at få mulighed for at vælge mellem alle dage de næste to måneder, samtidig med at den skal vises dagens dato i en select box
Avatar billede jakoba Nybegynder
27. september 2001 - 16:18 #3
jeg forstår ikke helt hvad du mener med:
    \"men scroller man ned bliver dagen hængende hele måneden.\"

kan du forklare lidt mere?
Avatar billede roenving Novice
27. september 2001 - 16:25 #4
<html>
<head>
<title></title>
</head>
<body>

<SCRIPT LANGUAGE=\"JavaScript\">
var months = new Array(\"januar\",\"februar\",\"marts\",\"april\",\"maj\",\"juni\",\"juli\",\"august\",\"september\",\"oktober\",\"november\",\"december\");
var days = new Array(\"Søndag\",\"Mandag\",\"Tirsdag\",\"Onsdag\",\"Torsdag\",\"Fredag\",\"Lørdag\");

today = new Date();
monthname = months[today.getMonth()+1];

thisyear = today.getFullYear();
thisday = today.getDate();
dayname = days[today.getDay()];

montharray=new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
maxdays=montharray[today.getMonth()];
if (maxdays==29 && (thisyear/4)!=parseInt(thisyear/4)) maxdays=28;

document.write(\"<form>\");
document.write(\"<select name=dates size=1>\");

for (var theday = 1; theday <= maxdays; theday++) {
var aktDay = new Date(today.getYear(),today.getMonth(),theday);

theday = \"\" + theday;
if (theday.length == 1) {
theday = \"0\" + theday;
}
document.write(\"<option\");
if (theday == thisday) document.write(\" selected\");
document.write(\">\");
document.write(days[aktDay.getDay()] + \" \" + theday + \". \" + monthname +\" \" + thisyear);
}
document.write(\"</select></form>\");

</SCRIPT>
</body>
</html>

Det var i hvert fald en del af problemet, men når de næste måneder skal med, kommer der en del problemer med årsskifte og sådan -- jeg prøver lige at kigge på det.

hth
jes
Avatar billede fri-hash Nybegynder
27. september 2001 - 16:53 #5
for mig at se ser det desuden ud som om du har glemt at der ikke skal lægges 1 til månedsnummer når nummer er 11, \"thismonth=dato.getMonth()+1\"
hvis du er i december bliver thismonth til 12 som er ugyldig månedsnummer ... minor detail, i know, ville bare gøre opmærksom på det
Avatar billede krisse Nybegynder
27. september 2001 - 17:11 #6
tak for buddene...
Og roenving, det ser fornuftigt ud. Der vanker 150 point hvis du også kan klare det andet problem.
Avatar billede roenving Novice
27. september 2001 - 17:15 #7
>>fri-hash
Ups ...
der fangede du mig med bukserne nede, linjen skal selvfølgelig være:
monthname = months[today.getMonth()];
;·|

>>krisse
Jeg kigger på det om lidt, men som sagt er det ikke bare lige, men det kan laves uden det bliver en afhandling.
jes
Avatar billede fri-hash Nybegynder
27. september 2001 - 17:21 #8
min pointe var at det ser ud som om der skal tilføjes en if-statement i stil med dette(ufuldstændig kode) :
if(måned == 11)
      måned=0
else
    måned=måned+1

,således at december fører til januar og ikke til et ugyldigt månedsnummer .... ved ikke om datoformatet selv tager højde for dette????
Avatar billede roenving Novice
27. september 2001 - 17:26 #9
Jamen, fri-hash jeg har slet ikke kigget på den næste måned endnu -- og så tror jeg det skal laves som en fortsat løkke, som starter en ny måned.
jes

Og
Nej datoformatet kan selv forstå en måned nr. 12
Avatar billede fri-hash Nybegynder
27. september 2001 - 17:28 #10
ok :-) ...god arbejdslyst
Avatar billede roenving Novice
27. september 2001 - 17:30 #11
Uff ... en tavetosse, som ville noget:

Nej datoformatet kan *ikke* selv forstå en måned nr. 12
Avatar billede jakoba Nybegynder
27. september 2001 - 21:15 #12
roenving >> skal vi tage en deler?
Avatar billede roenving Novice
27. september 2001 - 23:38 #13
Beklager, jeg lige havde et møde jeg skulle deltage i, men her er den:

<html>
<head>
<title></title>
</head>
<body>

<SCRIPT LANGUAGE=\"JavaScript\">
var aktmonths = new Array();
var years = new Array();
var months = new Array(\"januar\",\"februar\",\"marts\",\"april\",\"maj\",\"juni\",\"juli\",\"august\",\"september\",\"oktober\",\"november\",\"december\");
var days = new Array(\"Søndag\",\"Mandag\",\"Tirsdag\",\"Onsdag\",\"Torsdag\",\"Fredag\",\"Lørdag\");

today = new Date();
aktmonths[0]=today.getMonth();
aktmonths[1]=(aktmonths[0]+1)%12;
aktmonths[2]=(aktmonths[0]+2)%12;

years[0]=today.getFullYear();
years[1]=aktmonths[0]>10?years[0]+1:years[0];
years[2]=aktmonths[0]>9?years[0]+1:years[0];

thisday = today.getDate();
dayname = days[today.getDay()];

montharray=new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

document.write(\"<form>\");
document.write(\"<select name=dates size=1>\");
for (j=0;j<3;j++){
monthname = months[aktmonths[j]];
maxdays=montharray[aktmonths[j]];
if (maxdays==29 && (years[j]/4)!=parseInt(years[j]/4)) maxdays=28;

var theday = 1;
//Hvis du ikke vil have tidligere datoer end i dag skal denne linje med
if (j==0) theday = today.getDate();//starter fra i dag!

for (theday; theday <= maxdays; theday++) {
var aktDay = new Date(years[j],aktmonths[j],theday);

theday = \"\" + theday;
if (theday.length == 1) {
theday = \"0\" + theday;
}
document.write(\"<option\");
if (theday == thisday && j==0) document.write(\" selected\");
document.write(\">\");
document.write(days[aktDay.getDay()] + \" \" + theday + \". \" + monthname +\" \" + years[j]);
}
}
document.write(\"</select></form>\");

</SCRIPT>
</body>
</html>

PS: Bemærk den der linje, som gør at den først starter fra i dag, hvis du vil have hele måneden med sletter du den bare !·]
Avatar billede krisse Nybegynder
28. september 2001 - 11:16 #14
Genialt Roenving, respekt for dine anstrengelser. OneFifty til dig, lige ned i foret...
Tak for kommentarerne til andre.
Avatar billede krisse Nybegynder
28. september 2001 - 11:18 #15
Hvad gik galt her... Det var ikke meningen at du kun skulle ha\' 30 point???
Meningen var at du skulle ha\' 150, derfor nævnte jeg OneFifty ovenover.
Hvad skal jeg gøre? (det får du ikke ekstra point for ;-)
Avatar billede roenving Novice
28. september 2001 - 11:22 #16
Det forstår jeg heller ikke -- og blev også overrasket, da spørgsmålet jo var oprettet med 150 points.
Men anyway takker jeg for points ;~}

(Selv om jeg godt kunne bruge dem til at gå top 100 på min dag nr. 100 på Eksperten.dk *S*)

Ps. Hvis du meget gerne vil af med flere points, så må du oprette et nyt spørgsmål, som henviser til dette.
Avatar billede krisse Nybegynder
28. september 2001 - 21:45 #17
jeg synes jo du fortjener det... Jeg smider et nyt spm ud i æteren...
Avatar billede krisse Nybegynder
28. september 2001 - 21:47 #18
Avatar billede jakoba Nybegynder
29. september 2001 - 01:01 #19
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