Dia da Semana Por Extenso Ordenado

9 respostas
D

Postarei novamente minha dúvida

Utilizo essa função para ordenar os meses do ano por extenso onde eu passo uma string com os meses “Jan” , “Dez”, “Fev” …:

public class MesComparador implements Comparator<String>{

   //Fomatador de String para DAte
    private SimpleDateFormat sdf = new SimpleDateFormat("MMM", new Locale ("pt","BR"));
        
    public int compare(String mes1, String mes2){
        int retorno = 0;
                try {
                    Date d1 = sdf.parse(mes1);
                    System.out.print(d1);
                    Date d2 = sdf.parse(mes2);
                    retorno = d1.compareTo(d2);
                   // System.out.print(retorno);
                } catch (Exception e){
                    e.printStackTrace();
                }
                return retorno;
    }
}

Para ordenar pelo dia da semana por extenso utilizo essa, mas não está ordenando

public class DiaComparador implements Comparator<String>{

   //Fomatador de String para DAte
    private SimpleDateFormat sdf = new SimpleDateFormat("E", new Locale ("pt","BR"));
    Locale local = new Locale("pt", "BR");    
    
    public int compare(String dia1, String dia2){
        int retorno = 0;
                try {
                    
                    Date d1 = sdf.parse(dia1);
                     
                    Date d2 = sdf.parse(dia2);
                    
                    retorno = d1.compareTo(d2);
                    System.out.print("COMPARERETORNO="+retorno);
                } catch (Exception e){
                    e.printStackTrace();
                }
                return retorno;
    }
}

Algo errado na função?

9 Respostas

A

tem um metodo que o sort, esse metodo não te ajuda ?

F

qual é o problema que ocorre? não efetua ordenação?

D

Ordena somente por mes na primeira classe , na segunda que quero ordenar pelo dia da semana nao ordena

F
public int compare(String dia1, String dia2){

que informação exatamente esse metodo recebe?

D

É um relatório croostab que é gerado + ou - assim

Dom Seg Ter Qua…
JAN
FEV
MAR
ABR

Utilizo a função na propriedade Comparator Exp. do campo

Peguei o exemplo daqui
http://www.furutani.com.br/tutoriais/crosstab/tutorial_crosstab.pdf

F

fiz o teste aqui, em principio funciona normalmente… tens como enviar um cenário?

D

O Dados vem de uma query que retorna os dias da semana por extenso:

SELECT count(*) as total, mes, (CASE WHEN date_part(‘dow’, dt_fato)=0 THEN ‘Dom’ WHEN date_part(‘dow’, dt_fato)=1 THEN ‘Seg’ WHEN date_part(‘dow’, dt_fato)=2 THEN ‘Ter’"
+ “WHEN date_part(‘dow’, dt_fato)=3 THEN ‘Qua’ WHEN date_part(‘dow’, dt_fato)=4 THEN ‘Qui’ WHEN date_part(‘dow’, dt_fato)=5 THEN ‘Sex’”
+ "WHEN date_part(‘dow’, dt_fato)=6 THEN ‘Sáb’ END))

o resultado vai para a crosstab do jasper


F

em nem um momento tem possibilidade desse dia chegar null? pq o metodo funciona com dados controlados e tal, mas se esse select largar um null vai estourar.

D

não porque é obrigatorio o preenchimento da data

Criado 17 de novembro de 2011
Ultima resposta 17 de nov. de 2011
Respostas 9
Participantes 3