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 1º dia de janeiro deu numa segunda
break;
case 2: saida = 5; //o 1º 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