Código:
He probado añadiendo +1 en: Calendar esteMes = Calendar.getInstance(); esteMes.set(Calendar.DAY_OF_MONTH,1); SimpleDateFormat dia = new SimpleDateFormat("d"); Calendar finDelMes = (Calendar)esteMes.clone(); finDelMes.set(Calendar.DATE,finDelMes.getActualMaximum(Calendar.DATE)); finDelMes.add(Calendar.DATE,7-finDelMes.get(Calendar.DAY_OF_WEEK)); esteMes.add(Calendar.DATE,1-esteMes.get(Calendar.DAY_OF_WEEK)); //situa el calendario en el primer dia de la primera semana <table> <% do { %> <tr> <% for (int i=0; i < 7; i++) { %> <td> <%= dia.format(esteMes.getTime()) %> </td> <% esteMes.add(Calendar.DATE,1); //dia siguiente } %> // for </tr> <% } while(esteMes.getTime().before(finDelMes.getTime())); esteMes.add(Calendar.MONTH,-1); // Reestablece la fecha a principio del mes esteMes.set(Calendar.DATE,1); %> </table>
Código:
pero en algunos meses falla... alguien me puede echar una mano?? muchas gracias y un saludo. esteMes.add(Calendar.DATE,1-esteMes.get(Calendar.DAY_OF_WEEK)+1);