package br.com.citframework.tld; import java.io.IOException; import java.text.DecimalFormat; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.GregorianCalendar; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.BodyTagSupport; public class Calendar extends BodyTagSupport{ /** * */ private static final long serialVersionUID = -5251526307674678800L; private int mes; private int ano; public int doStartTag() throws JspException { // int dia = 1; int diaSemana = 0; String data = ""; Date retorno = null; java.util.Calendar c; SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); NumberFormat formatoAux = new DecimalFormat("00"); data = formatoAux.format(1) + "/" + formatoAux.format(this.getMes()) + "/" + formatoAux.format(this.getAno()); c = new GregorianCalendar(this.getAno(), this.getMes() -1, 1); diaSemana = c.get(java.util.Calendar.DAY_OF_WEEK); int j = 0; int calendario[][] = new int[7][6]; String calendarioStr[][] = new String[7][6]; String dtAux = ""; for(int i = 1; i <= 31; i++){ data = formatoAux.format(i) + "/" + formatoAux.format(this.getMes()) + "/" + formatoAux.format(this.getAno()); try{ retorno = sdf.parse(data); dtAux = sdf.format(retorno); if (!data.equalsIgnoreCase(dtAux)){ break; } }catch(Exception e){ break; } calendario[diaSemana - 1][j] = i; calendarioStr[diaSemana - 1][j] = formatoAux.format(i) + "_" + formatoAux.format(this.getMes()) + "_" + formatoAux.format(this.getAno()); if (diaSemana >= java.util.Calendar.SATURDAY){ diaSemana = java.util.Calendar.SUNDAY; j++; }else{ diaSemana++; } } try{ pageContext.getOut().print("<table border='1'>"); pageContext.getOut().print("<tr>"); pageContext.getOut().print("<td></td>"); pageContext.getOut().print("<td colspan='7' align='center'><b>"+this.getMes()+"/"+this.getAno()+"</b></td>"); pageContext.getOut().print("</tr>"); pageContext.getOut().print("<tr>"); //pageContext.getOut().print("<td></td>"); pageContext.getOut().print("<td><b>D</b></td>"); pageContext.getOut().print("<td><b>S</b></td>"); pageContext.getOut().print("<td><b>T</b></td>"); pageContext.getOut().print("<td><b>Q</b></td>"); pageContext.getOut().print("<td><b>Q</b></td>"); pageContext.getOut().print("<td><b>S</b></td>"); pageContext.getOut().print("<td><b>S</b></td>"); pageContext.getOut().print("</tr>"); for(int x = 0; x < 6; x++){ pageContext.getOut().print("<tr>"); //pageContext.getOut().print("<td style='cursor:hand' onclick=\"eventSemanaCalendario('"+calendarioStr[0][x]+"')\">X</td>"); for(int i = 0; i < 7; i++){ if (calendario[i][x] > 0){ pageContext.getOut().print("<td id='"+calendarioStr[i][x]+"' style='cursor:pointer' onclick=\"eventDiaCalendario('"+calendarioStr[i][x]+"',this)\">"+calendario[i][x]+"</td>"); }else{ pageContext.getOut().print("<td> </td>"); } } pageContext.getOut().print("</tr>"); } pageContext.getOut().print("</table>"); }catch(IOException e){ e.printStackTrace(); throw new JspException(e); } return SKIP_BODY; } public int getAno() { return ano; } public void setAno(int ano) { this.ano = ano; } public int getMes() { return mes; } public void setMes(int mes) { this.mes = mes; } }