Como identificar se o dia é seg,ter,qua,qui,sex,sab ou dom, de uma determinha data "ex:04/05/1997"

Alô pessoal, preciso de uma ajuda.

Como faço para identificar se o dia caiu numa seg,ter,qua,qui,sex,sab ou dom, de uma determinha data “ex:04/05/1997”. Existe algum método na classe Date ou Calendar que me possibilite isso?

Se puderem ajudar eu agradeço!

Retorna o dia da semana (sendo domingo = 0, segunda = 1…)

Calendar now = Calendar.getInstance(); System.out.println(now.get(Calendar.DAY_OF_WEEK));

Compara se hoje é sábado.

Calendar now = Calendar.getInstance(); System.out.println(now.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY);

Exibe o nome do dia da semana baseado no Locale padrão

Date now = new Date(); System.out.println(new SimpleDateFormat("EEEE").format(now));

Ou com o Locale definido manualmente

Date now = new Date(); Locale br = new Locale("pt", "br"); System.out.println(new SimpleDateFormat("EEEE", br).format(now));

Você pode também usar o joda-time: joda-time.sf.net

É possível fazer isso usando a classe java.util.Calendar:

Calendar c = Calendar.getInstance();

c.setTime(myDate); //onde myDate é um objeto do tipo java.util.Date representando a data desejada

if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY)
System.out.println(“Domingo”);
else if(c.get(Calendar.DAY_OF_WEEK)==Calendar.MONDAY)
System.out.println(“Segunda”);

//e o mesmo pros outros dias de semana

Até mais.

Usa o Calendar

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html#DAY_OF_WEEK

abraço

[quote=wchevreuil]É possível fazer isso usando a classe java.util.Calendar:

Calendar c = Calendar.getInstance();

c.setTime(myDate); //onde myDate é um objeto do tipo java.util.Date representando a data desejada

if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY)
System.out.println(“Domingo”);
else if(c.get(Calendar.DAY_OF_WEEK)==Calendar.MONDAY)
System.out.println(“Segunda”);

//e o mesmo pros outros dias de semana

Até mais.[/quote]

Obrigado pessoal!era exatamento isso que eu tava precisando.

Calendar c = Calendar.getInstance();
		
		String texto = "18/11/2007";
		String formato = "dd/MM/yyyy";
		Date d = new SimpleDateFormat(formato).parse(texto);
		c.setTime(d);
		if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY)
			System.out.println("Domingo");
			else if(c.get(Calendar.DAY_OF_WEEK)==Calendar.MONDAY)
			System.out.println("Segunda");

cabralsan, no exemplo que eu te passei você faz isso em UMA linha apenas.

Ok meu caro, Obrigado pela ajuda, mas tenho outra dúvida, já fiz alguns testes com os métodos da classe calendar mas não tive o resultado ideal:
É o seguinte, se o mês é FEVEREIRO por ex, como saber se esse mês é de 28, 30, 31 dias?
Se puderem ajudar eu agradeço!

[quote=cabralsan]É o seguinte, se o mês é FEVEREIRO por ex, como saber se esse mês é de 28, 30, 31 dias?
Se puderem ajudar eu agradeço![/quote]

Hmm, de uma boa olhada na API do Calendar, que é bem explicada. Tem muitos métodos interessantes para esses calculos. http://java.sun.com/javase/6/docs/api/java/util/Calendar.html

Lá tem um método Calendar.getActualMaximum(xx), sendo esse XX o campo que você quer. Por exemplo

Calendar now = Calendar.getInstance(); int numOfDays = now.getActualMaximum(Calendar.DAY_OF_MONTH);

Nesse caso ele retorna o numero máximo do dia do mês.

Abraços

[quote=garcia-jj][quote=cabralsan]É o seguinte, se o mês é FEVEREIRO por ex, como saber se esse mês é de 28, 30, 31 dias?
Se puderem ajudar eu agradeço![/quote]

Hmm, de uma boa olhada na API do Calendar, que é bem explicada. Tem muitos métodos interessantes para esses calculos. http://java.sun.com/javase/6/docs/api/java/util/Calendar.html

Lá tem um método Calendar.getActualMaximum(xx), sendo esse XX o campo que você quer. Por exemplo

Calendar now = Calendar.getInstance(); int numOfDays = now.getActualMaximum(Calendar.DAY_OF_MONTH);

Nesse caso ele retorna o numero máximo do dia do mês.

Abraços[/quote]

Obrigado mais uma vez!
Se alguém quizer usar a lógica abaixo para obter o último dia de um mês de algum ano, ai vai :

String data= "08/06/2009";//informe qualquer data neste formato.
		String formato = "dd/MM/yyyy";
		Date d = new SimpleDateFormat(formato).parse(data);
		
		Calendar cal = Calendar.getInstance();
		cal.setTime(d);
		
		
		int dia = d.getDate();//dia informado na data
		int ValorMes = d.getMonth() ;//mes informado na data
		int Ano = d.getYear()+1900;//ano informado na data
		int mesAtual = d.getMonth()+1;
		String mes;
	

		switch (mesAtual){
		
			case 1: mes = "Janeiro";
				cal.set(Ano,ValorMes,dia);break;
			case 2: mes = "Fevereiro";
				cal.set(Ano,ValorMes,dia);break;
			case 3: mes = "Março";
				cal.set(Ano,ValorMes,dia);break;
			case 4: mes = "Abril";
				cal.set(Ano,ValorMes,dia);break;
			case 5: mes = "Maio";
				cal.set(Ano,ValorMes,dia);break;
			case 6: mes = "Junho";
				cal.set(Ano,ValorMes,dia);break;
			case 7: mes = "Julho";
				cal.set(Ano,ValorMes,dia);break;
			case 8: mes = "Agosto";
				cal.set(Ano,ValorMes,dia);break;
			case 9: mes = "Setembro";
				cal.set(Ano,ValorMes,dia);break;
			case 10: mes = "Outubro";
				cal.set(Ano,ValorMes,dia);break;
			case 11: mes = "Novembro";
				cal.set(Ano,ValorMes,dia);break;
			default: mes = "Dezembro";
				cal.set(Ano,ValorMes,dia);break;
		}
		System.out.println("Dia  :"+dia);
		System.out.println("Ano :"+Ano);
		System.out.println("Mês : " +mes);
		
		
		
		System.out.println("O último dia do mês de " +mes+ " do Ano de "+Ano+" é: "+cal.getActualMaximum(cal.DAY_OF_MONTH));