Fórum Pegar dia da semana #567145

09/04/2009

0

Pessoal eu tenho um Date, e eu queria fazer a comparação para ver se é sabado ou domingo, como fazer isto ?
Edinei Manica

Edinei Manica

Responder

Post mais votado

09/04/2009

e apos obter a data, algo do tipo:
Calendar cal = Calendar.getInstance();
cal.setTime(data);
int day = cal.get(Calendar.DAY_OF_WEEK);
switch (day) {
    case Calendar.SATURDAY:
        cal.add(Calendar.DAY_OF_WEEK, 2);  
        // talvez cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); ?
        break;
    case Calendar.SUNDAY:
        cal.add(Calendar.DAY_OF_WEEK, 1);
        break;
    default:
        break;
}
Date dataSemana = cal.getTime();
[]]]

Carlos Heuberger

Carlos Heuberger
Responder

Gostei + 1

Mais Posts

09/04/2009

Bruno Ambrózio

Ednei, Não sei se há alguma outra forma, mas quando precisei, fiz assim:
//retorna o dia da semana dada uma data
  public String retornarDiaSemana(int ano, int mes, int dia)
  {

    Calendar calendario = new GregorianCalendar(ano, mes - 1, dia);
    int diaSemana = calendario.get(Calendar.DAY_OF_WEEK);

    return pesquisarDiaSemana(diaSemana);
  }

 //faz a pesquisa, dado um inteiro de 1 a 7
  public String pesquisarDiaSemana(int _diaSemana)
  {
    String diaSemana = null;

    switch (_diaSemana)
    {

    case 1:
    {
      diaSemana = "Domingo";
      break;
    }
    case 2:
    {
      diaSemana = "Segunda";
      break;
    }
    case 3:
    {
      diaSemana = "Terça";
      break;
    }
    case 4:
    {
      diaSemana = "Quarta";
      break;
    }
    case 5:
    {
      diaSemana = "Quinta";
      break;
    }
    case 6:
    {
      diaSemana = "Sexta";
      break;
    }
    case 7:
    {
      diaSemana = "Sábado";
      break;
    }

    }
    return diaSemana;

  }

Abraço.
Responder

Gostei + 0

09/04/2009

Edinei Manica

[quote="brunoambrozio"]Ednei, Não sei se há alguma outra forma, mas quando precisei, fiz assim:
//retorna o dia da semana dada uma data
  public String retornarDiaSemana(int ano, int mes, int dia)
  {

    Calendar calendario = new GregorianCalendar(ano, mes - 1, dia);
    int diaSemana = calendario.get(Calendar.DAY_OF_WEEK);

    return pesquisarDiaSemana(diaSemana);
  }

 //faz a pesquisa, dado um inteiro de 1 a 7
  public String pesquisarDiaSemana(int _diaSemana)
  {
    String diaSemana = null;

    switch (_diaSemana)
    {

    case 1:
    {
      diaSemana = "Domingo";
      break;
    }
    case 2:
    {
      diaSemana = "Segunda";
      break;
    }
    case 3:
    {
      diaSemana = "Terça";
      break;
    }
    case 4:
    {
      diaSemana = "Quarta";
      break;
    }
    case 5:
    {
      diaSemana = "Quinta";
      break;
    }
    case 6:
    {
      diaSemana = "Sexta";
      break;
    }
    case 7:
    {
      diaSemana = "Sábado";
      break;
    }

    }
    return diaSemana;

  }

Abraço.
O problema é que eu tenho uma data no formato "20-02-2005 23:30" armazenados em uma string!!!!!! Como fazer para passar para GregorianCalendar ?
Responder

Gostei + 0

09/04/2009

Luiz Rocha

Provavelmente voce vai usar o construtor: [b]GregorianCalendar(int year, int month, int date, int hour, int minute) [/b] Para obter os argumentos, você deverá usar o método [i]parseInt()[/i] da classe [i]Integer[/i] e trabalhar na string que você tem com os métodos [i]trim()[/i] e [i]substring(int beginIndex, int endIndex) [/i]. Pronto, alguns minutos você resolve isso. Juntando com o código do bruno para trazer o nome do dia em português... sussa!! Boa sorte.
Responder

Gostei + 0

09/04/2009

Edinei Manica

[quote="luizfarruda"]Provavelmente voce vai usar o construtor: [b]GregorianCalendar(int year, int month, int date, int hour, int minute) [/b] Para obter os argumentos, você deverá usar o método [i]parseInt()[/i] da classe [i]Integer[/i] e trabalhar na string que você tem com os métodos [i]trim()[/i] e [i]substring(int beginIndex, int endIndex) [/i]. Pronto, alguns minutos você resolve isso. Juntando com o código do bruno para trazer o nome do dia em português... sussa!! Boa sorte.
Era exatamente isto que eu não queria fazer.... Pois fica grande o código ter que ficar dando substring, Mas se eu não achar outra solução vai estaa....
Responder

Gostei + 0

09/04/2009

Luiz Rocha

é a única maneira... tenho certeza. mas nem é grande não... em 3 ou 4 linhas vc faz tudo, num único statement.... agora se vc tiver usando isso várias vezes no seu programa, compensa fazer uma classe utilitária com esse método.
Responder

Gostei + 0

09/04/2009

Edinei Manica

[quote="luizfarruda"]é a única maneira... tenho certeza. mas nem é grande não... em 3 ou 4 linhas vc faz tudo, num único statement.... agora se vc tiver usando isso várias vezes no seu programa, compensa fazer uma classe utilitária com esse método.
é o meu problema é que eu tenho que verificar se e sabado ou domingo, e se for um destes dia eu tenho que retornar a data da próxima segunda.
Responder

Gostei + 0

09/04/2009

Giovane Kuhn

naum naum... deixa o java fazer para você isso. utilize a classe [url=http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html]SimpleDateFormat[/url] O pattern pode ser algo assim:
"dd-MM-yyyy HH:mm"
Para obter a data, basta utilizar o método [url=http://java.sun.com/j2se/1.5.0/docs/api/java/text/DateFormat.html#parse(java.lang.String)]parse[/url]:
Date data = format.parse("20-02-2005 23:30");
Flow
Responder

Gostei + 0

09/04/2009

Tony Christopher

public String getDiaSemanaDescritivo(Timestamp data){ GregorianCalendar calendar = new GregorianCalendar(); calendar.setTime(data); String[] diaSemana = new String[]{"Domingo","Segunda-feira", "Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"}; return diaSemana[calendar.get(GregorianCalendar.DAY_OF_WEEK)]; }
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar