Salve!
Estou tentando resolver um problema lógico aqui, porém estou com problemas…
Tenho que retornar o dia da semana em que um determinado dia cai.
Exemplo: Dia 16 do mês de abril do ano de 2006. será um Domingo. ( dia da semana = 1)
Olhem o que estou tentando fazer
[code]/**
*
- Desenvolver um programa que calcule quantos dias de vida
-
o usuário tem e em que dia da semana ele nasceu
*/
package nivel1;
import java.util.Calendar;
import java.util.Date;
public class DiasDeVida {
public void Calcula(int AnoNasc, int MesNasc, int DiaNasc) {
Date data = new Date();
Calendar cal = Calendar.getInstance();
int anoInit = AnoNasc - 1900;
data.setDate(DiaNasc);
data.setYear(anoInit);
data.setMonth(MesNasc);
cal.setTime(data);
//int diasVida = (cal.get(Calendar.YEAR) - AnoNasc) * 365;
//int diaNasc = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(cal.get(Calendar.DAY_OF_WEEK));
}
public static void main(String[] args) {
DiasDeVida este = new DiasDeVida();
este.Calcula(2006,4,16);
}
}[/code]
Coisas estranhas:
- Na variável anoInit tenho que subtrair 1900 do valor passado pelo usuário, sempre!
- Mesmo ele retornando o dia, mês e ano certos, o dia da semana ele retorna errado. Para a data passada no método, ele retorna 3.(Terça-feira)
- Se eu não definir o data.set*(…) os problemas acima não ocorrem, porém, não tem sentido, pois ele usará a data atual e não a estipulada.
- Os métodos data.set*() estão em decadencia. Logo, o que eu poderia usar no lugar deles ?
Espero que alguém, possa me indicar algo…
Abraços!