calcular datas no loop  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
edulemos
Thread.start()

Membro desde: 04/10/2008 07:52:48
Mensagens: 36
Offline

preciso gravar datas na sequencia acrescentando meses a uma data
específica, estou tentando assim:

mas a saida sai assim:

as datas não estão saindo na sequência correta, como fazer para
que as datas sejam sequencias mês a mês.
nel
JWizard
[Avatar]

Membro desde: 01/10/2009 13:51:10
Mensagens: 2364
Offline

Você deseja que seja ordenado por mês, é isto?

Algo como:


Abraços.

"Se houver a terceira guerra mundial eu não sei como será mas a quarta será com paus e pedras" Albert Einsten.
ozix
JavaEvangelist

Membro desde: 25/05/2006 18:00:15
Mensagens: 326
Localização: Porto Velho
Offline


O céu é azul porque a matrix roda em Windows
edulemos
Thread.start()

Membro desde: 04/10/2008 07:52:48
Mensagens: 36
Offline

isso, preciso que as datas sejam ordenadas por mes na sequencia a
partir de uma data especifica para gravar datas de compras parceladas
no banco.

ja estou fazendo isso no loop, mas não sai na sequencia certa.

nel
JWizard
[Avatar]

Membro desde: 01/10/2009 13:51:10
Mensagens: 2364
Offline

Bom, estou de saída mas ai vai uma sugestão.
Crie uma classe que implemente a interface Comparator de modo a efetuar comparação entre meses.

Cria uma List de Calendar e aplique o seu "Comparator". Algo assim:


Se preferir podes criar uma Lista de Date e tratar este Date com um Calendar dentro da classe Comparator, o que creio que seria mais adequado.
Abraços!

"Se houver a terceira guerra mundial eu não sei como será mas a quarta será com paus e pedras" Albert Einsten.
blst
Debugger

Membro desde: 28/12/2007 16:42:40
Mensagens: 64
Offline

Edulemos: o que o Oziz falou está correto



Ao invés de voce colocar a váriavel i, coloque 1. A cada loop no seu laço, o sistema adicionará um mes. Se voce deixar o i ele vai adicionar 1 mes, 2 meses, 3 meses e assim por diante.

Ficaria assim então



OCP, Java SE 6
LeoMarola
JavaGuru
[Avatar]

Membro desde: 17/07/2006 10:35:11
Mensagens: 201
Localização: Rio de Janeiro
Offline


Objetos Calendar são pesados demais... crie vários a menos que vc realmente precise de uma instância diferente de cada.



deve te atender.

Quando vc recupera o Calendar, o Date já é o atual.. não precisa setar.

O metodo getInstance ja deverá te retornar uma instancia de GregorianCalendar

@Test

SCJP 5
SCWCD 5
SCBCD 5
SCEA 5 (Starting..)

[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

LeoMarola wrote:Objetos Calendar são pesados demais... crie vários a menos que vc realmente precise de uma instância diferente de cada.


De onde surgiu essa informação de que são "pesados" demais? Pesados em que? Memória? Performance?
Acho muitíssimo improvável que eles vão dar qualquer problema na aplicação, embora seu código seja mesmo marginalmente mais eficiente.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
LeoMarola
JavaGuru
[Avatar]

Membro desde: 17/07/2006 10:35:11
Mensagens: 201
Localização: Rio de Janeiro
Offline


Oi Viny,

me refiro a nível de memória, tamanho do objeto. o Calendar agrega diversas informações que provavelmente não deverão ser usadas, as vezes simplesmente vamos precisar de dia/mes/ano e não das demais informações.

@Test

SCJP 5
SCWCD 5
SCBCD 5
SCEA 5 (Starting..)

[MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Olhando aqui, vi que ambos os códigos criam o mesmo número de calendars, tanto o seu, quanto o dele. Não houve otimização no seu código por usar o getInstance(), já que o getInstance() cria um novo calendar. A única diferença é que o getInstance() baseia-se em informações do local da plataforma onde o java estiver rodando, então seu código é mais multiplataforma.

Só dei o alerta pois performance dificilmente é uma justificativa plausível. Otimização prematura é tão prejudicial quanto não otimizar. Agora, claro que se não houver perda de legibilidade (como é o caso do seu código), uma otimizaçãozinha é sempre bem-vinda.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
nel
JWizard
[Avatar]

Membro desde: 01/10/2009 13:51:10
Mensagens: 2364
Offline

Este tipo de discussão é sempre bem-vinda, pois no meu caso, agrega valores.
Mas edulemos, o seu problema foi resolvido? Se não foi, aplicou a ideia que eu citei acima?

Caso tenha sido resolvido, poste a solução pois outros podem vir a ter a mesma necessidade que a sua ok?

Abraços!

"Se houver a terceira guerra mundial eu não sei como será mas a quarta será com paus e pedras" Albert Einsten.
edulemos
Thread.start()

Membro desde: 04/10/2008 07:52:48
Mensagens: 36
Offline

Ok resolvido, as vezes agente não enexerga o problema
na nossa frente, obrigado a todos.
LeoMarola
JavaGuru
[Avatar]

Membro desde: 17/07/2006 10:35:11
Mensagens: 201
Localização: Rio de Janeiro
Offline

ViniGodoy wrote:Olhando aqui, vi que ambos os códigos criam o mesmo número de calendars, tanto o seu, quanto o dele. Não houve otimização no seu código por usar o getInstance(), já que o getInstance() cria um novo calendar. A única diferença é que o getInstance() baseia-se em informações do local da plataforma onde o java estiver rodando, então seu código é mais multiplataforma.

Só dei o alerta pois performance dificilmente é uma justificativa plausível. Otimização prematura é tão prejudicial quanto não otimizar. Agora, claro que se não houver perda de legibilidade (como é o caso do seu código), uma otimizaçãozinha é sempre bem-vinda.


Com certeza Viny, está certo!

@Test

SCJP 5
SCWCD 5
SCBCD 5
SCEA 5 (Starting..)

[MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team