tags:

views:

38

answers:

1

Calendar displays some weird dates. Rhe month date is supposed to start at friday but starts on tuesday: http://img515.imageshack.us/img515/2927/cal.jpg.

<SCRIPT LANGUAGE="JavaScript"> 
   monthnames = new Array("January","Februrary","March","April","May","June","July","August","September","October","November","December"); 
   var linkcount=0; 
   function addlink(month, day, href) 

    { 
    var entry = new Array(3); 
    entry[0] = month; 
    entry[1] = day; 
    entry[2] = href; 
    this[linkcount++] = entry; 
    } 
    Array.prototype.addlink = addlink; 
    linkdays = new Array(); 
    monthdays = new Array(12);
    monthdays[0]=31; 
    monthdays[1]=28; 
    monthdays[2]=31; 
    monthdays[3]=30; 
    monthdays[4]=31; 
    monthdays[5]=30; 
    monthdays[6]=31; 
    monthdays[7]=31; 
    monthdays[8]=30;
    monthdays[9]=31; 
    monthdays[10]=30;
    monthdays[11]=31;
    todayDate=new Date(); 
    thisday=todayDate.getDay(); 
    thismonth=todayDate.getMonth(); 
    thisdate=todayDate.getDate(); 
    thisyear=todayDate.getYear(); 
    thisyear = thisyear % 100; 
     thisyear = ((thisyear < 50) ? (2000 + thisyear) : (1900 + thisyear)); 
 if (((thisyear % 4 == 0) && !(thisyear % 100 == 0)) || (thisyear % 400 == 0)) 
    { 
    monthdays[0]++; 
    } 
    startspaces=thisdate; 
    while (startspaces > 7) 
    { 
    startspaces-=7; 
    startspaces = thisday - startspaces + 1; 
    } 
    while (startspaces < 0) {
       startspaces += 7;


    } 

    document.write("<table border=1 bgcolor=white "); 
    document.write("bordercolor=black><font color=black>"); 
    document.write("<tr><td colspan=7><center><strong>" + monthnames[thismonth] + " " + thisyear + "</strong></center></font></td></tr>");                         document.write("<tr>"); 
    document.write("<td align=center>Su</td>"); 
    document.write("<td align=center>M</td>"); 
    document.write("<td align=center>Tu</td>"); 
    document.write("<td align=center>W</td>"); 
    document.write("<td align=center>Th</td>"); 
    document.write("<td align=center>F</td>"); 
    document.write("<td align=center>Sa</td>"); 
    document.write("</tr>"); 
    document.write("<tr>"); 
    for (s=0;s<startspaces;s++) 
    {
    document.write("<td> </td>"); 
    }
    count=1; 
    while (count <= monthdays[thismonth]) 
    { 
    for (b = startspaces;b<7;b++) 

    { 
    linktrue=false; 
    document.write("<td>"); 
    for (c=0;c<linkdays.length;c++) 

    { 
    if (linkdays[c] != null) 

    { 
    if ((linkdays[c][0]==thismonth + 1) && (linkdays[c][2]==count)) 
    { 
    document.write("<a href=\"" + linkdays[c][2] + "\">"); linktrue=true; 
    } 
    } 
    } 
    if (count==thisdate) 
    { 
    document.write("<font color='FF0000'><strong>");
    } 
    if (count <= monthdays[thismonth]) 
    { document.write(count);
    } 
    else { document.write(" ");
    } 
    if (count==thisdate) 
    { document.write("</strong></font>"); 
    } 
    if (linktrue) { document.write("</a>"); 
    }
    document.write("</td>"); count++; 
    } 
    document.write("</tr>"); 
    document.write("<tr>"); 
    startspaces=0; 
    } 
    document.write("</table></p>"); 
</SCRIPT>

I can't seem to follow the code because I'm just new with javascript and programming, got this code from here: http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=2608&amp;lngWId=2

+1  A: 

The calculations in this code are just plain wrong. I suggest you don't bother fixing it. Instead, use a reliable calendar that is widely used like the jQuery UI datepicker

brianpeiris