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

8 respostas
C

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!

8 Respostas

G

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

W

É 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.

P

Usa o Calendar

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

abraço

C

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.

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");
G

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

C

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!

G

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!

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

C

garcia-jj:
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!

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

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));
Criado 6 de novembro de 2009
Ultima resposta 10 de nov. de 2009
Respostas 8
Participantes 4