alguém poderia me disponibilizar o script de criação de calendário dinamico??
public static final String gerarCalendario(Calendar data, boolean[] flags) {
boolean limiteEstourado = false;
StringBuffer str = new StringBuffer (7800);
str.append("<form name='form_calendario' action='/servlet/compromissos.CompromissosServlet' method='post' >");
str.append(" <input type='hidden' name='tipo_de_acao' value='exibicao'>");
str.append(" <input type='hidden' name='acao' value='mudar_dia'>");
str.append(" <input type='hidden' name='modo_de_exibicao' value='dia'>");
str.append(" <input type='hidden' name='dia' value='1'>");
//str.append(" <table width='142' border='0' cellspacing='0' cellpadding='0' background='/imagens/calendario.gif'>
");
str.append(" <table width='142' border='1' bordercolor='black' cellspacing='0' cellpadding='0'>
");
str.append(" <tr>
");
str.append(" <td>");
str.append(" <table width='100%' border='0' bordercolor='black' cellpadding='0' cellspacing='0'>
");
/*str.append(" <tr>
");
str.append(" <td>&nbsp;</td>
");
str.append(" <td align='left' valign='middle'>&nbsp;</td>
");
str.append(" <td colspan='5' align='center'>&nbsp;</td>
");
str.append(" <td align='right' valign='middle'>&nbsp;</td>
");
str.append(" </tr>
");
**/
str.append(" <tr bgcolor='#003666'>
");
str.append(" <td>&nbsp;</td>
");
str.append(" <td align='left' valign='middle'>
");
str.append(" ");
str.append(FONTE_CALENDARIO);
str.append("
<a href='' onclick="form_calendario.acao.value='voltar_mes'; form_calendario.submit(); return false;">
");
str.append(" &nbsp;<img src='/imagens/seta_esq_on.gif' name='calendario_seta_esq' width='7' height='7' border='0'>
");
str.append(" </a>
");
str.append(" </font>
");
str.append(" </td>
");
str.append(" <td colspan='5' align='center'>
");
str.append(" <font color='white' size='2' face='Verdana, Arial, Helvetica, sans-serif'>
");
str.append(" <strong>
");
str.append(MESES[data.get(Calendar.MONTH)]);
str.append(" ");
str.append(data.get(Calendar.YEAR));
str.append(" </strong>
");
str.append(" </font>
");
str.append(" </td>
");
str.append(" <td align='right' valign='middle'>
");
str.append(" ");
str.append(FONTE_CALENDARIO);
str.append("
<a href='' onclick="form_calendario.acao.value='passar_mes'; form_calendario.submit(); return false;">
");
str.append(" <img src='/imagens/seta_dir_on.gif' name='calendario_set_dir' width='7' height='7' border='0'>
");
str.append(" </a>&nbsp;
");
str.append(" </font>
");
str.append(" </td>
");
str.append(" </tr>
");
str.append(" <tr>
");
str.append(" <td>&nbsp;</td>
");
str.append(" <td align='left'>");
str.append(FONTE_CALENDARIO);
str.append("S</td>
");
str.append(" <td align='left'>");
str.append(FONTE_CALENDARIO);
str.append("T</td>
");
str.append(" <td align='left'>");
str.append(FONTE_CALENDARIO);
str.append("Q</td>
");
str.append(" <td align='left'>");
str.append(FONTE_CALENDARIO);
str.append("Q</td>
");
str.append(" <td align='left'>");
str.append(FONTE_CALENDARIO);
str.append("S</td>
");
str.append(" <td align='left'>");
str.append(FONTE_CALENDARIO);
str.append("S</td>
");
str.append(" <td align='left'>");
str.append(FONTE_CALENDARIO);
str.append("D</td>
");
str.append(" </font>
");
str.append(" </tr>
");
str.append(" <tr>
");
str.append(" <td colspan='8'><img src='/imagens/black.gif' height='1' width='100%'></td>
");
str.append(" </tr>
");
int limiteMes = data.getActualMaximum(Calendar.DAY_OF_MONTH);
int[] diasNaSemana = new int[limiteMes + 1];
int diaCorrente = data.get(Calendar.DAY_OF_MONTH);
int diaAtual = diaCorrente;
Calendar data2 = (Calendar)data.clone();
data2.set(Calendar.DAY_OF_MONTH, 1);
diasNaSemana[1] = data2.get(Calendar.DAY_OF_WEEK);
// Os dias começam a ser exibidos a partir do primeiro
diaCorrente = 1;
for (int j = 2; j <= limiteMes; j++) {
diasNaSemana[j] = (diasNaSemana[j - 1] % 7) + 1;
}
for (int i = 0; (diaCorrente <= limiteMes) || i < 6; i++) {
str.append(" <tr>
");
str.append(" <td>&nbsp;</td>
");
for (int k = 0; k < 7; k++) {
str.append(" <td>
");
str.append(" <font size='2' face='Verdana, Arial, Helvetica, sans-serif'>
");
// Testa se o dia da semana e o da coluna k
if (!limiteEstourado && diasNaSemana[diaCorrente] == DIAS_SEMANA[k]) {
// Testa se existe compromisso no dia
if (flags[diaCorrente-1]) {
// Se houver então o dia fica em negrito
str.append(" <b>");
str.append("<a href='' onclick="form_calendario.dia.value='");
str.append(diaCorrente);
str.append("'; form_calendario.submit(); return false;"");
str.append("" target='_self' class='Acalendario'>");
// Se esse dia for o dia atual entao a fonte do dia fica vermelha
str.append((diaCorrente == diaAtual)?"<font color='red'>":"");
str.append(diaCorrente);
str.append((diaCorrente == diaAtual)?"</font>":"");
str.append("</a>");
str.append("</b>
");
}
else {
str.append(" <a href='' onclick="form_calendario.dia.value='");
str.append(diaCorrente);
str.append("'; form_calendario.submit(); return false;"");
str.append("" target='_self' class='Acalendario'>");
str.append((diaCorrente == diaAtual)?"<font color='red'>":"");
str.append(diaCorrente);
str.append((diaCorrente == diaAtual)?"</font>":"");
str.append("</a>
");
}
// Teste se o limite de dias no mês já estourou
if (diaCorrente == limiteMes)
limiteEstourado = true;
diaCorrente++;
}
// Se não for não escreve o dia
else
str.append("--
");
str.append(" </font>
");
str.append(" </td>
");
}
str.append(" </tr>");
}
str.append(" </table>
");
str.append(" </td>
");
str.append(" </tr>
");
str.append(" </table>
");
str.append("</form>
");
return str.toString();
}
Esse eu tô usando em um projeto para gestão de compromissos, é só mudar um pouco… ele gera uma tabela HTML com um calendário.
A variável FONTE_CALENDARIO é “<font size=‘2’ face=‘Arial, Helvetica, sans-serif’>”