Ordenar por dia uma lista de objeto do Date!
20/10/2009 00:00
0
Olá Turma, como faço para ordenar pro dia do mês uma lista de objetos do tipo Date retirados do banco!



def listaAniversariantesMes={

def calendario = new GregorianCalendar()
def trialTime = new Date()
calendario.setTime(trialTime)
def diaAtual = calendario.get(Calendar.DAY_OF_MONTH)
def mesAtual = calendario.get(Calendar.MONTH) + 1

def pessoas = Pessoa.findAll()

def calendarioAniversariopessoa = new GregorianCalendar()

def lista = new ArrayList()

pessoas.each{pessoa->

calendarioAniversarioPessoa.setTime(pessoa.nascimentoPessoa)

if(calendarioAniversarioPessoa.get(Calendar.MONTH) == calendario.get(Calendar.MONTH)){
lista.add(pessoa)
}
}

println "=---------------------->"
println "${lista.nascimentoServidor.day.sort()} --- dias da semana :( quero dias do mês! :D"
println "=---------------------->"
//return lista
return lista.sort()



Quando dou um return lista.nascimentoPessoa.sort() o grails retorna os dias da semana, mas quero os dias do Mês atual!

Obrigado!
Tags: Grails


0
Deixa eu ver se entendi: você quer ordenar apenas pelo dia do mês, certo?

Sendo assim, se houverem as datas 1/4/2009, 2/2/2009 e 3/1/2009 elas seriam ordenadas como 1/4/2009, 2/2/2009 e 3/1/2009?

Neste caso, o que você pode fazer é o seguinte

AVISO: GAMBIARRA ABAIXO

crie uma lista que em seu interior armazene um hash cujo índice seja um inteiro (representando o dia) e o conteúdo seja uma lista (contendo as suas classes).

Usando a classe java.util.Calendar, extraia o dia da data em questão e em seguida vá preenchendo a estrutura que descrevi acima.


0
Blz Kiko, Valeu cara!
É estava pensando nessa "gambiarra"...rsrsr. Mas queria saber antes se tinha alguma forma de buscar em um objeto do tipo date ordenado apenas no formato: dd/MM (dia/mês)! Mas pelo jeito o método lista.short() ordena sempre na ordem: (dia/mês /ano)... Falou!
21/10/2009 00:00


0
Olá,

pelo nome do seu método acho que você quer uma lista dos aniversariantes do mês ordenados pela data, certo?

bom se for isto eu já fiz aqui no meu sistema e o que me ajudou foi um comando sql que já traz isto:

def lstAni = Usuario.executeQuery( "SELECT * FROM Usuario WHERE DATE_FORMAT(dat_nasc, '%m') = ? ORDER BY DATE_FORMAT(dat_nasc, '%d') ASC",[ mes ] )


ai eu já tenho a lista dos aniversariantes do mes que eu passar como parâmetro ordenados pelo dia do aniversário...

abraços
28/10/2009 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto