Alloro non ho capito bene cosa devi fare cmq ho buttato giù un poco di codice in pochi minuti quindi non è ottimizzato ma funziona e costruisce il calendario del mese corrente(o meglio del mese che il server ha impostato come data) per andare avanti(mese avanti) e indietro(mese indietro) non è difficile devi solo stare attenta a quando il mese è Gennaio e Dicembre ti posto il codice:




codice:
String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);

SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);

Calendar calendario = new GregorianCalendar(pdt);

int oggi=calendario.get(Calendar.DAY_OF_MONTH);

int mese=calendario.get(Calendar.MONTH);

int anno=calendario.get(Calendar.YEAR);

calendario.set(Calendar.DAY_OF_MONTH,1);

int giornosettimana=calendario.get(Calendar.DAY_OF_WEEK);

out.println("<table border=\"0\" width=\"70%\" align=\"center\"> <tr><td>


</td></tr> <tr><td width=\"10%\" align=\"center\"><font face=\"verdana\" size=\"2\">Domenica</font></td><td width=\"10%\" align=\"center\"><font face=\"verdana\" size=\"2\">Lunedì</font></td><td width=\"10%\" align=\"center\"><font face=\"verdana\" size=\"2\">Martedì</font></td><td width=\"10%\" align=\"center\"><font face=\"verdana\" size=\"2\">Mercoledì</font></td><td width=\"10%\" align=\"center\"><font face=\"verdana\" size=\"2\">Giovedì</font></td><td width=\"10%\" align=\"center\"><font face=\"verdana\" size=\"2\">Venerdì</font></td><td width=\"10%\" align=\"center\"><font face=\"verdana\" size=\"2\">Sabato</font></td></tr>");

out.println("<tr>");

if(giornosettimana!=1)

 { %>

  <td align=\"center\"></td>

  <%

  if(giornosettimana!=2)

   {%>

    <td align=\"center\"></td>

    <%

    if(giornosettimana!=3)

     {%>

       <td align=\"center\"></td>

      <%

      if(giornosettimana!=4)

      {%>

        <td align=\"center\"></td>

       <%

       if(giornosettimana!=5)

        {%>

         <td align=\"center\"></td>

         <%

          if(giornosettimana!=6)

          {%>

           <td align=\"center\"></td>

           <%

           if(giornosettimana!=7)

            {%>

             <td align=\"center\"></td>

             <%

            }

          }

        }

      }

     }

   }

 }

do

{

int giorno=calendario.get(Calendar.DAY_OF_MONTH);

if((giornosettimana==Calendar.SATURDAY) || (giornosettimana==Calendar.SUNDAY))

 {

 %>

  <td align="center"><font color="red" size="2" face="verdana"><%out.println(giorno);%></font></td>

 <%

 }

 else

 {

  %>

  <td align="center"><font color="black" size="2" face="verdana"><%out.println(giorno);%></font></td>

  <%

 }

if(giornosettimana==Calendar.SATURDAY)

 {

  out.println("</tr>");

  out.println("<tr>");

 }

calendario.add(Calendar.DAY_OF_MONTH,1);

giornosettimana=calendario.get(Calendar.DAY_OF_WEEK);

}

while(calendario.get(Calendar.MONTH)==mese);

out.println("</tr>");

out.println("</table>");

%>

</table>