oi pessola estou precisando de um calendário que quando o usuário clicar no dia… ele monstra o compromisso do dia…
como eu faço isso…
eu desenvolvi uma agenda… que precisa deste calendário…
nem sei se ele tem algum calendário pronto.
Mas a lógica é vc pegar o data como uma chave para a tua pesquisa onde vc guarda os compromissos e o usuário, aí mostrar na tela.
Oi
Marcia, existem as classes Calendar e GregorianCalendar que serão as peças chaves pra fazer isso, mas agora, para mostrar compromisso, etc, etc, tu vai ter que fazer tudo na mão mesmo. :oops:
T+
serio pessoal… mas como eu faço isso…
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html
esse link talvez ajude um pouco!!!
boa sorte!!
[quote=“marciapaula”]oi pessola estou precisando de um calendário que quando o usuário clicar no dia… ele monstra o compromisso do dia…
como eu faço isso…
eu desenvolvi uma agenda… que precisa deste calendário…[/quote]
A tua aplicação é desktop ou web?
a minha aplicação e web…
Abaixo está o trecho de uma servlet abstrata que mostra um mês do calendário.
Ele é específico da minha aplicação, mas espero que lhe seja útil. Qualquer dúvida, esteja à vontade para perguntar.
//
// desmembra a data de hoje
//
GregorianCalendar cal = new GregorianCalendar();
java.util.Date hoje = cal.getTime();
int hoje_dia = cal.get(Calendar.DATE);
int hoje_mes = cal.get(Calendar.MONTH) + 1;
int hoje_ano = cal.get(Calendar.YEAR);
int agora_hora = cal.get(Calendar.HOUR_OF_DAY);
int agora_minuto = cal.get(Calendar.MINUTE);
//
// pega o ponteiro para a data a ser mostrada no painel de informações
//
String param;
param = req.getParameter("dia");
int dia = (param != null) ? Integer.parseInt(param) : hoje_dia;
param = req.getParameter("mes");
int mes = (param != null) ? Integer.parseInt(param) : hoje_mes;
param = req.getParameter("ano");
int ano = (param != null) ? Integer.parseInt(param) : hoje_ano;
//
// coloca o calendário no 1o. dia do mês mostrado
//
cal.set(ano, (mes - 1), 1);
int maximo = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
//
// amarra o primeiro dia da semana
//
cal.setFirstDayOfWeek(Calendar.SUNDAY);
cal.setMinimalDaysInFirstWeek(1);
//
// inicia a construção da página
//
setTemplate("agenda.html");
synchronized (pagina)
{
pagina.setPlaceHolder("titulo", titulo);
pagina.setPlaceHolder("ajuda", ajuda);
pagina.setPlaceHolder("mensagem", mensagem);
//
// passa os parâmetros do dia selecionado
//
pagina.setPlaceHolder("dia", Util.strzero(dia, 2));
pagina.setPlaceHolder("mes", Util.strzero(mes, 2));
pagina.setPlaceHolder("ano", String.valueOf(ano));
//
// passa o índice do <SELECT name=hora>
//
agora_hora++;
if(agora_hora == 24)
agora_hora = 0; // ajusta às idiossincrasias da lib
int indice = agora_hora * 2;
if(agora_minuto > 30)
indice++;
pagina.setPlaceHolder("hora", String.valueOf(indice));
//
// pega o nome da classe derivada (usado nos links dinâmicos)
//
pagina.setPlaceHolder("url", emitForm());
//
// constrói as células diárias do calendário
//
StringBuffer bloco = new StringBuffer();
StringBuffer agenda = new StringBuffer();
bloco.append("<TR HEIGHT=30 CLASS=cal>");
int dd = -1;
for(int i = 1; i <= maximo; i++)
{
boolean eh_hoje = (i == hoje_dia && mes == hoje_mes && ano == hoje_ano);
java.util.Date data = cal.getTime();
//
// deixa as casas antes do dia 1o. em branco
//
if(i == 1)
{
int dds = cal.get(Calendar.DAY_OF_WEEK);
for(int j = 1; j < dds; j++)
bloco.append("<TD> ");
dd = dds;
}
//
// cria o link do dia
//
bloco.append("<TD ALIGN=center");
if(i == dia)
{
// define o estilo da célula
//
bloco.append(" BGCOLOR=yellow");
if(eh_hoje)
bloco.append(" CLASS=hoje>");
else
bloco.append('>');
//
// formata os dados da agenda do dia
//
agenda.append("<B>Agenda do dia " + Util.strzero(dia, 2) + "-" +
Util.strzero(mes, 2) + "-" +
ano + ":</B><BR>");
//
// abre conexão com o sistema backend
//
Connection con = null;
try
{
con = portal.dbpool.getConnection();
//
// implementa a estratégia do botão voltar
//
int transa = checaTransa();
flowId = req.getParameter("flowId");
pagina.setPlaceHolder("flowId", flowId);
//
// pega as informações digitadas pelo usuário
//
String hora = req.getParameter("hora");
String info = req.getParameter("info");
if(info != null)
{
// testa a sanidade da transação
//
if(transa > 0)
{
new Mensagem(this, "Transação inválida, diagnóstico:<BR>" +
falhas[transa - 1]);
return;
}
//
// salva as informações digitadas pelo usuário
//
insereNota(con, info, hora, data);
//
// atualiza o token do botão voltar
//
transTk = geraTransa(flowId);
}
else
transTk = req.getParameter("transTk");
pagina.setPlaceHolder("transTk", transTk);
//
// busca os agendamentos para o dia
//
PreparedStatement stmt2 = buscaNotas(con, data);
ResultSet rs = stmt2.executeQuery();
int n = 0;
while(rs.next())
{
hora = rs.getString(1);
info = rs.getString(2);
int org = rs.getInt(3);
String conta = rs.getString(4);
String admin = rs.getString(5);
agenda.append("<TR><TD>[" + hora + "] Origem: <FONT COLOR=#");
agenda.append(origens[org]);
agenda.append("</FONT>");
if(origem == VISITANTE)
{
agenda.append(", enviada por <I>" + conta + "</I>");
agenda.append(", aprovada por <I>" + admin + "</I>");
}
agenda.append("<TR><TD>" + info);
agenda.append("<TR><TD> \r\n");
n++;
}
if(n == 0)
agenda.append("-- Vazia --");
stmt2.close();
}
catch(SQLException e)
{
throw new ServletException(e);
}
finally
{
con.close();
}
}
else
{
if(eh_hoje)
bloco.append(" CLASS=hoje>");
else
bloco.append('>');
}
//
// gera o link para o dia
//
flowId = "agFlow" + Util.getNonce();
transTk = geraTransa(flowId);
bloco.append(
emitLink("dia=" + i + "&mes=" + mes + "&ano=" + ano + "&flowId=" + flowId + "&transTk=" + URLEncoder.encode(transTk), String.valueOf(i), null));
cal.add(Calendar.DAY_OF_MONTH, 1);
dd++;
if(dd == 8)
{
dd = 1;
//
// se não era o último dia, cria uma nova linha na tabela
//
if(i < maximo)
bloco.append("<TR HEIGHT=30 CLASS=cal>");
}
}
//
// completa a última semana com casa vazias
//
if(dd > 1)
for(; dd < 8; dd++)
bloco.append("<TD> ");
//
pagina.setPlaceHolder("bloco", bloco);
pagina.setPlaceHolder("agenda", agenda);
//
// calcula o mês anterior
//
int _mes = mes;
int _ano = ano;
mes--;
if(mes == 0)
{
mes = 12;
ano--;
}
pagina.setPlaceHolder("mes1", String.valueOf(mes));
pagina.setPlaceHolder("ano1", String.valueOf(ano));
//
// calcula o próximo mês
//
mes = _mes;
ano = _ano;
mes++;
if(mes == 13)
{
mes = 1;
ano++;
}
pagina.setPlaceHolder("mes2", String.valueOf(mes));
pagina.setPlaceHolder("ano2", String.valueOf(ano));
//
// envia o código html
//
pagina.send();
}
Em particular, ignore as linhas relativas às variáveis flowId e transTk, que não têm nada a ver com o calendário.