Dia da semana

1 resposta
H

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

/**
 * 
 * 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);
	}
}

Coisas estranhas:

1. Na variável anoInit tenho que subtrair 1900 do valor passado pelo usuário, sempre!
2. 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)
3. 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.
4. 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!

1 Resposta

J

Isso é algum tipo de trabalho de faculdade? Se não for use o que já existe…

GregorianCalendar cal = new GregorianCalendar(); int dia = cal.get(Calendar.DAY_OF_WEEK);

Criado 16 de abril de 2006
Ultima resposta 17 de abr. de 2006
Respostas 1
Participantes 2