Calendário gráfico interativo

2 respostas
edsonsguizzato

Olá pessoal…
Estou trabalhando num projeto, que é um software que controla uma agência de turismo. Como ferramentas, esse software possui um calendário interativo, onde o usuário pode selecionar o mês e/ou ano e é exibido o calendário gráfico para ele. Coloquei em um JPanel os 37 botões possíveis em 1 mês para exibir os dias e deixei-os não visíveis. O método que desenha esse calendário, recebe o mês e o ano (inteiros) e a partir dessa informação, torna visíveis os botões a partir do 1º dia ao último do mês.
Meu problema, é a lógica matemática para encontrar em qual dia da semana deu o 1º dia do mês ( se foi segunda, terça, … ) de um determinado mês e ano.
Provisorioamente, criei um grande IF que abrange o intervalo de 2001 a 2011. Porém isso restringe meu software.
Conto com a ajuda de vocês!!!
Abaixo está a solução provisória:

private int getDiaInicial( int ano, int mes ){

int saida = 0; //default 0
  if( ano == 2001 ){

     switch( mes ){

        case 1: saida = 2; //o  dia de janeiro deu numa segunda
           break;
        case 2: saida = 5; //o  dia de fevereiro deu numa quinta
           break;
        case 3: saida = 5;
           break;
        case 4: saida = 1;
           break;
        case 5: saida = 3;
           break;
        case 6: saida = 6;
           break;
        case 7: saida = 1;
           break;
        case 8: saida = 4;
           break;
        case 9: saida = 7;
           break;
        case 10: saida = 2;
           break;
        case 11: saida = 5;
           break;
        case 12: saida = 7;
           break;

     }

     return saida;

  }//fim no método getDiaInicial

2 Respostas

H

cara, porque vc eta criando um calendario?
ja existe varios prontos que vc so implementa na sua aplicação,
https://swingx.dev.java.net/

edsonsguizzato

É trabalho do meu curso, aí pode valer aqueles pontinhos extras pra passar…
Mas valeu pela dica.

Criado 5 de novembro de 2006
Ultima resposta 6 de nov. de 2006
Respostas 2
Participantes 2