Como descobrir o dia da semana (por extenso), passando como parâmetro a data: dd/MM/yyyy ? [ok]

11 respostas
MrDataFlex

Bom, o título do tópico ja abrange bem a pergunta.

Estou com esta dúvida pessoal.

Alguém teria uma dica?

Agradeço antecipadamente.

Abraços!

11 Respostas

SrFabio

Bom assim do nada é completamente impossível, tens primeiro de considerar o dia 1 de janeiro, tens de dizer qual é o dia da semana correspondente e só apartir daí é que poderás criar algo que “descubra” os outros dias.

P

Acho que isso pode te dar uma luz

GregorianCalendar gc = new GregorianCalendar();
		SimpleDateFormat sdf = new SimpleDateFormat();
		
		try {
			gc.setTime(sdf.parse("01/01/2007"));
			switch (gc.get(Calendar.DAY_OF_WEEK)) {
			case Calendar.SUNDAY:
				System.out.println("Domingo");
				break;
			case Calendar.MONDAY:
				System.out.println("Segunda");
				break;
				
			}
			
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
MrDataFlex

Valeu galerinha,
sabia que existia alguma forma :slight_smile:

abraços, e boa pascoa!

Andre.flu

Tenta isso:

GregorianCalendar calendar = new GregorianCalendar();
		
SimpleDateFormat df = new SimpleDateFormat("EEEEEE ',' dd ' de 'MMMM ' de ' yyyy");
System.out.println( df.format(calendar.getTime() ) );
T
import java.text.*;
import java.util.*;

class DiaDaSemana {
    // Em que dia da semana
    // foi proclamada a Independência do Brasil?
    public static void main(String[] args) throws Exception {
        Locale.setDefault (new Locale ("pt", "BR"));
        DateFormat df = new SimpleDateFormat ("dd/MM/yyyy");
        Date dt = df.parse ("07/09/1822");
        DateFormat df2 = new SimpleDateFormat ("EEEE");
        System.out.println (df2.format (dt));
    }
}
wagner.gs

ou entao o código abaixo;

//Seta a localizaçao para Brasil, independente das configuracoes regionais
		String[] DIA_SEMANA_EXTENSO = new DateFormatSymbols(new Locale("pt", "BR")).getWeekdays();
	        Date date = null;
	        String data = "04/04/2007";
                String formato = "dd/MM/yyyy";
//isso dá maior flexibilidade e certeza q a data vai estar no formato desejado
	        SimpleDateFormat df = new SimpleDateFormat(formato);
			try {
				date =  df.parse(data);
			}
			catch (ParseException pe) {
			}
			Calendar c = Calendar.getInstance();
			c.setTime(date);
			
			String diaDaSemana = DIA_SEMANA_EXTENSO[c.get(Calendar.DAY_OF_WEEK)];
			System.out.println(diaDaSemana);
ViniGodoy

Ao invés daquele switch horrível ali em cima, use a classe DateFormatSymbols. Ela já contém métodos para obter a String completa de todos os meses, dias da semana, nomes resumidos dos meses e outras coisas que o DateFormat usa.

E

Vê se alguém aí pode me ajudar.
Tenho que desenvolver um código em Java que capture a hora do sistema, mas a hora e o minuto devem ser atribuidas separadamente a uma variável do tipo inteiro.

Algo do tipo:

int hora = hora_do_dia;
int minuto = minuto;

Desde já agradeço
valeu!!

T

Consulte a documentação da classe java.util.Calendar, ela sozinha faz o que você quer.

biazotto

Muito legal!
Lendo a documentação da classe SimpleDateFormat entendi como funciona o pattern de data e hora (como o EEEE, que mostra o dia da semana por extenso - até três “E”, mostra abreviado; acima de 4 “E”, mostra completo), que eu estava em dúvida.

ex: EEE -> “Qua”
EEEE - > “Quarta-feira”

jtsato
import java.util.Calendar;
import java.util.Locale;

public class CalendarTest {

    public static void main(final String args[]) {
        final CalendarTest objCalendarTest = new CalendarTest();
        objCalendarTest.execute();
    }

    public void execute() {
        final Calendar objCalendar = Calendar.getInstance();
        final Locale objLocale = new Locale("pt", "BR");
        System.out.println(objCalendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, objLocale));
    }
}
Criado 4 de abril de 2007
Ultima resposta 19 de ago. de 2009
Respostas 11
Participantes 10