Avatar billede zubir Nybegynder
23. oktober 2002 - 16:24 Der er 23 kommentarer og
1 løsning

Kalender

Hej Eksperten

Jeg er godt på vej med at lave en simpel  kalender i JavaScript. Jeg har også taget hensyn til skudår.
Men jeg har problemer med de enkelt dags datoer i alle februar måneder i de forskellige år. Programmet kan ikke opdater de enkelt dage.
Jeg håber i kan hjælpe.
BS. Jeg skrive mine JavaScript kode………………………..




<html>
<head>
<title>Rigtig kalender</title>
<script language="JavaScript">

DagsDato= new Date();
hh=DagsDato.getHours();
mm=DagsDato.getMinutes();
ss=DagsDato.getSeconds();

// her udskriver jeg dagensdato
i_dag=new Date();
maaned=i_dag.getMonth()+1;
dag=i_dag.getDate();
aar=i_dag.getYear();


// funktion der tegner det endelige kalender.
function kalender(aar,maaned)
  {
   
    i_dag=new Date(aar,maaned,-2);
    start= i_dag.getDay();
        // variablen start finder aktuelle ugedag for den månde og det år,der bliver sendt
        // med som parameter til funktion.
       
        document.write("<table cellspacing=0 cellpadding=0 border=1>");
    document.write("<tr><th colspan=7>"+maaned + " - " +aar+ "</th></tr>");
    document.write("<tr><th> Søn </th><th> Man </th><th> Tir</th>");
        document.write("<th> Ons</th>");
        document.write("<th> Tor </th> <th>Fri</th> <th>Lør</th></tr>");
        document.write("<tr align=right>");
       
          var celle=0;        
      for(i=0; i<start; i++)


      {
              document.write("<td>&#160<\/td>");
          celle++; }
               
            //Med denne løkke finde ud af hvilke dag er den først dag i den aktulle uge
            //Hvis den først dag er Onsdag er fleterne for søndag mandag og tirsdag tommme.
           
                var dage= new Array(31,28,31,30,31,30,31,31,30,31,30,31);
                //opretter jeg et array med antallet af dage i de enkelt måneder.
               
                for(i=1; i<=dage[maaned-1]; i++)
                {            //jeg har lavet nedstående løkke. for at tage hensyn til at der er måneder med 30 og 31,28 0g 29 dage.
               
                document.write("<td><b>"+ i+ "</b></td>");
        celle++;            
      if (celle ==7 )
        {
          document.write("</tr><tr align=right>");
          celle=0;
         
                if((aar %4 ==0 && aar%100 !=0) ||aar%400==0)dage[1]=29;
            else
                  dag[1]=28;
                        }
            }
            }       
               
               
//funktion slut
</script>
</head>

<body>
<img src="q4lifelogo.gif " alt=" Hej Wisal"><h2>
<center>Event Kalender</center></h2>


<script language="JavaScript">
document.write("<center><b>Klokken er:"+hh+':'+ mm + ':'+ss+ "</center>");
//giver parameter til funktion
kalender(aar,maaned);
</script>


</body>
</html>
Avatar billede Slettet bruger
23. oktober 2002 - 17:19 #1
Du mangler et e i denne linje:

dag[1]=28;

(skal selvfølgelig være "dage[1]")
Avatar billede zubir Nybegynder
23. oktober 2002 - 17:31 #2
har testede men den fungere stadigvæ´k ikke........
hvad skal jeg gør
Avatar billede Slettet bruger
23. oktober 2002 - 17:34 #3
Du skal smide et link.
Avatar billede zubir Nybegynder
23. oktober 2002 - 18:00 #4
har du ikke mulighed for at kopi mine kode og derefter afprøve det...
jeg kan nemlig ikke simde den som en link.
Avatar billede zubir Nybegynder
23. oktober 2002 - 18:30 #5
nu har jeg lagt det ude på nettet.
link
www.hosting.profft-consult.dk/zubir/
Avatar billede zubir Nybegynder
23. oktober 2002 - 18:32 #6
nu har jeg lagt det ude på nettet.
link
hosting.profft-consult.dk/zubir/
jeg håber de kan svar nu
Avatar billede zubir Nybegynder
24. oktober 2002 - 16:17 #7
hej phoenixv
jeg venter på din svar....................?
Avatar billede Slettet bruger
24. oktober 2002 - 20:43 #8
Så bliver du nødt til at vente lidt endnu, for jeg kan slet ikke se problemet... For mig at se, virker alt som det bør! Også i februar.
Men du har nu stadig ikke ændret "dag" til "dage", så det giver formentlig problemer ved skudår.
Avatar billede Slettet bruger
24. oktober 2002 - 21:17 #9
Hvorfor har du oprettet to ens spørgsmål?
Luk det ene, det er imod regleren!
Avatar billede zubir Nybegynder
25. oktober 2002 - 12:23 #10
Hej  phoenixv
jeg har ændret dag til dage, men den virker stadigvæk ikke.
Jeg kan heller ikke forstå hvad problem er....Forresten jeg skal nok fjerne en af sporgsmålen.
MVH
zubi
Avatar billede Slettet bruger
25. oktober 2002 - 18:14 #11
Jeg kan stadig ikke finde et problem. Heller ikke hvis jeg ændrer min computers ur til d. 25/2-2004 (skudår).
Avatar billede zubir Nybegynder
28. oktober 2002 - 16:55 #12
Men tak fordidu prøvede Phoenixy.
Jeg fandt fejlen selv.
men tak for hjælpen...........
M.V.H
z
Avatar billede Slettet bruger
29. oktober 2002 - 18:07 #13
Hvad var fejlen? Jeg kunne overhovedet ikke se noget galt!

P.S. Husk at lukke spørgsmålet!
Avatar billede zubir Nybegynder
29. oktober 2002 - 19:51 #14
Jeg har lavet mine kalender på en anden måde.Jeg vil ikke have at folk skal se mine kode.
Forresten jeg kan sende mine kalender kode hvis du vil...
bare give mig din e-male adresse..
P.S. hvordan lukker man spørgsmålet!
Avatar billede Slettet bruger
30. oktober 2002 - 14:31 #15
Jeg mener, det er forkert at skjule sin kode. Det er trods alt kun nogle få linjers kode. Har du måske ikke selv lært en masse fra at kigge i andre folks kildekoder? Hvorfor frarøve andre den mulighed?
Og så er der jo olebole's: "Dem, der prøver at skjule sin kode, har ikke noget at skjule" (eller noget i den stil).

Men du lukker spørgsmålet ved selv at lægge et svar og acceptere det!
Avatar billede Slettet bruger
30. oktober 2002 - 14:32 #16
en masse fra = en masse af
Avatar billede zubir Nybegynder
31. oktober 2002 - 13:41 #17
Jeg accepter men jeg ikke enig med det du har skrevet.
Avatar billede Slettet bruger
31. oktober 2002 - 16:47 #18
Du har stadig ikke lukket spørgsmålet.

Hvad er du ikke enig i? At man kan lære en hel masse fra kildekoder?
Avatar billede zubir Nybegynder
31. oktober 2002 - 18:13 #19
Det vil være bedre
Avatar billede zubir Nybegynder
31. oktober 2002 - 18:16 #20
Det vil være bedre at jeg ikke går merer dybten..
Men tak for alt phoenixv...
Avatar billede zubir Nybegynder
31. oktober 2002 - 18:24 #21
<html>
<head>
<title>Rigtig kalender</title>
<script language="JavaScript">

DagsDato= new Date();
hh=DagsDato.getHours();
mm=DagsDato.getMinutes();
ss=DagsDato.getSeconds();

// her udskriver jeg dagensdato
i_dag=new Date();
maaned=i_dag.getMonth()+1;
dag=i_dag.getDate();
aar=i_dag.getYear();


// funktion der tegner det endelige kalender.
function kalender(aar,maaned)
  {
   
    i_dag=new Date(aar,maaned,-2);
    start= i_dag.getDay();
        // variablen start finder aktuelle ugedag for den månde og det år,der bliver sendt
        // med som parameter til funktion.
       
        document.write("<table cellspacing=0 cellpadding=0 border=1>");
    document.write("<tr><th colspan=7>"+maaned + " - " +aar+ "</th></tr>");
    document.write("<tr><th> Søn </th><th> Man </th><th> Tir</th>");
        document.write("<th> Ons</th>");
        document.write("<th> Tor </th> <th>Fri</th> <th>Lør</th></tr>");
        document.write("<tr align=right>");
       
          var celle=0;       
      for(i=0; i<start; i++)


      {
              document.write("<td>&#160<\/td>");
          celle++; }
               
            //Med denne løkke finde ud af hvilke dag er den først dag i den aktulle uge
            //Hvis den først dag er Onsdag er fleterne for søndag mandag og tirsdag tommme.
           
                var dage= new Array(31,28,31,30,31,30,31,31,30,31,30,31);
                //opretter jeg et array med antallet af dage i de enkelt måneder.
               
                for(i=1; i<=dage[maaned-1]; i++)
                {            //jeg har lavet nedstående løkke. for at tage hensyn til at der er måneder med 30 og 31,28 0g 29 dage.
               
                document.write("<td><b>"+ i+ "</b></td>");
        celle++;           
      if (celle ==7 )
        {
          document.write("</tr><tr align=right>");
          celle=0;
         
                if((aar %4 ==0 && aar%100 !=0) ||aar%400==0)dage[1]=29;
            else
                  dag[1]=28;
                        }
            }
            }       
               
               
//funktion slut
</script>
</head>

<body>
<img src="q4lifelogo.gif " alt=" Hej Wisal"><h2>
<center>Event Kalender</center></h2>


<script language="JavaScript">
document.write("<center><b>Klokken er:"+hh+':'+ mm + ':'+ss+ "</center>");
//giver parameter til funktion
kalender(aar,maaned);
</script>


</body>
</html>
Avatar billede Slettet bruger
31. oktober 2002 - 20:37 #22
Tak, tak! :)

Men hvad var problemet til at starte med?
Avatar billede Slettet bruger
31. oktober 2002 - 20:38 #23
Altså problemet i min kode! :)
Avatar billede tmi Nybegynder
24. november 2007 - 21:19 #24
Du behøver slet ikke tænke, Date-objektet gør det hele for dig ;-)

<html>
<head>
<script>
function showCalendar(cid, action, month, year) {

    if (month == null) month = (new Date()).getMonth();
    if (year == null) year = (new Date()).getFullYear();

    var time = new Date(), cal = Array(Array()), j = 0;
    var dkdays = Array(6,0,1,2,3,4,5), months = Array("Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December");
    time.setFullYear(year, month, 1);
    var cyear = time.getFullYear(), cmonth = time.getMonth(), sday = dkdays[time.getDay()], lday = 0;

    for (var i = 0; i < sday; i++) cal[j].push(0); // fyld ud med nuller
    for (var i = 1; i <= 35; i++) {
        time.setFullYear(year, month, i);
        if (time.getMonth() != cmonth) break;
        if ((i > 1) && ((i+sday) % 7 == 1)) { cal.push(Array()); j++; }
        cal[j].push(i);
        lday = time.getDay();
    }
    for (var i = 0; i < 7-(dkdays[lday]+1); i++) cal[j].push(0); // fyld ud med nuller

    var co = document.getElementById(cid);
    while (co.firstChild) co.removeChild(co.firstChild);

    var html;

    html = "<table cellspacing='0' width='"+co.getAttribute("width")+"'>";

    html += "<thead>";
    html += "<tr>";
    html += "<td align='center'><a href='java script: showCalendar(\""+cid+"\", \""+action+"\", "+(cmonth-1)+", "+cyear+");' class='prevMonth'> << </a></td>";
    html += "<td align='center'><a href='java script: showCalendar(\""+cid+"\", \""+action+"\", "+cmonth+", "+(cyear-1)+");' class='prevYear'> |< </a></td>";
    html += "<td colspan='3' align='center'>"+months[cmonth]+" "+cyear+"</td>";
    html += "<td align='center'><a href='java script: showCalendar(\""+cid+"\", \""+action+"\", "+cmonth+", "+(cyear+1)+");' class='nextYear'> >| </a></td>";
    html += "<td align='center'><a href='java script: showCalendar(\""+cid+"\", \""+action+"\", "+(cmonth+1)+", "+cyear+");' class='nextMonth'> >> </a></td>";
    html += "</tr></thead>";
    html += "</thead>";

    html += "<tbody>";
    html += "<tr>";
    html += "<td align='center' width='14%'>M</td>";
    html += "<td align='center' width='14%'>T</td>";
    html += "<td align='center' width='14%'>O</td>";
    html += "<td align='center' width='14%'>T</td>";
    html += "<td align='center' width='14%'>F</td>";
    html += "<td align='center' width='14%'>L</td>";
    html += "<td align='center' width='14%'>S</td>";
    html += "</tr>";
    html += "</tbody>";


    var today = new Date();
    tday = today.getDate();
    tmonth = today.getMonth();
    tyear = today.getFullYear();


    html += "<tfoot>";
    for (var i = 0; i < cal.length; i++) {
        html += "<tr>";
        for (var k = 0; k < cal[i].length; k++) {
            var cday = cal[i][k];
            html += "<td align='center' "+((cday == tday && cmonth == tmonth && cyear == tyear)?"class='today'":"")+">";
            if (cday)    html += "<a href='java script: "+action+"("+cday+", "+(cmonth+1)+", "+cyear+");'>"+cday+"</a>";
            else        html += "&nbsp;";
            html += "</td>";
        }
        html += "</tr>";
    }
    html += "</tfoot>";

    html += "</table>";

    co.innerHTML = html;

}
</script>
</head>
<body>

<style>
#kalender table {
    border-left: 1px solid grey;
    border-top: 1px solid grey;
}
#kalender td {
    border-right: 1px solid grey;
    border-bottom: 1px solid grey;
}
#kalender {
    font-family: Helvetica;
    font-size: 8pt;
}
#kalender a {
    color: #000000;
}
#kalender thead td {
    background: lightblue;
    border: 2px outset white;
}
#kalender tbody td {
    background: orange;
}
#kalender tfoot td {
    background: buttonface;
    border: 2px outset white;
}
#kalender tfoot td.today {
    background: cyan;
    border: 2px inset white;
}
</style>

her er min kalender:

<span id='kalender' width='300'>Arbejder..</span>
hihi
<script>
function kalenderHandling(d, m, y) {
    alert("Du valgte d. "+d+"/"+m+"/"+y);
}
showCalendar("kalender", "kalenderHandling");
</script>

</body>
</html>
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