Tenho uma data setada no programa, em String, e um array de objetos que possuem como um dos atributos uma data.
Então, eu preciso acessar esse atributo data usando um for dentro da classe ListaDeLeiloes:
for(int i=0; i < lista.size(); ++i)
{
Leilao l = lista.get(i);
String d = l.getData(); ....
//comparar com a data setada no programa e retornar os leiloes que estão em andamento
}
Já me falaram que talvez precise converter as datas em date, mas não tenho a menor idéia de como fazer isso… E os exemplos que li, parecem complexos demais pra mim…
Se alguém puder ajudar a converter para date e comparar ou tiver algum outro método que funcione, agradeço muito!
Tenho uma data setada no programa, em String, e um array de objetos que possuem como um dos atributos uma data.
Então, eu preciso acessar esse atributo data usando um for dentro da classe ListaDeLeiloes:
for(int i=0; i < lista.size(); ++i)
{
Leilao l = lista.get(i);
String d = l.getData(); ....
//comparar com a data setada no programa e retornar os leiloes que estão em andamento
}
Já me falaram que talvez precise converter as datas em date, mas não tenho a menor idéia de como fazer isso… E os exemplos que li, parecem complexos demais pra mim…
Se alguém puder ajudar a converter para date e comparar ou tiver algum outro método que funcione, agradeço muito![/quote]
for(int i=0 i<lista.size();i++){
String d=lista.get(i).getData() // apanhas no array a data nesta posição e voilá!!!
}
if( lista.get(i).getData().compareTo(dataquerecebes)>0)
aki defines se a data for maior faz o k keres..e se for menor tb faz o k keres; ....
este é o metodo compareTo
Returns:
the value 0 if the argument is a string lexicographically equal to this string; a value less than 0 if the argument is a string lexicographically greater than this string; and a value greater than 0 if the argument is a string lexicographically less than this string.
tou fazendo um bocado a pressa tenho de ir ao treino de JUdo…
//comparar com a data setada no programa e retornar os leiloes que estão em andamento
Tenho uma data setada no programa, em String, e um array de objetos que possuem como um dos atributos uma data.
Então, eu preciso acessar esse atributo data usando um for dentro da classe ListaDeLeiloes:
for(int i=0; i < lista.size(); ++i)
{
Leilao l = lista.get(i);
String d = l.getData(); ....
//comparar com a data setada no programa e retornar os leiloes que estão em andamento
}
Já me falaram que talvez precise converter as datas em date, mas não tenho a menor idéia de como fazer isso… E os exemplos que li, parecem complexos demais pra mim…
Se alguém puder ajudar a converter para date e comparar ou tiver algum outro método que funcione, agradeço muito![/quote]
Leilão.getData() deve retornar um Date ( e se possivel ter um nome mais explicito como getDateDeInicio(), já que Data é um tipo de variável e não o conteudo da variável)
Date é Comparable. Vc pode fazer a.compareTo(b) e usar o resultado como filtro.
Ai fica mais fácil
// copia todos para a lista de abertos
List<Leilao> abertos = new LinkedList<Leilao> (lista);
Date limite= ... // a data setada no programa
for(Iterator<Leilao> it = abertos.iterator();it.hasNext();)
{
Date d = it.next().getData();
//comparar com a data setada no programa e retornar os leiloes que estão em andamento
// está em andamento se a data do leilão é menor que a do limite.
if (d.compareTo(limite)>=0){
// não está em andamento: remove da lista de abertos
it.remove();
}
}
return abertos;
Você pode converter a data com o SimpleDateFormat e comparar com os métodos da classe Date, como no exemplo:
/*
* Classe que transforma String para Date e vice-versa.
* No exemplo, estou falando para a classe que o formato da data com a qual estou trabalhando
* é dd/MM/yyyy, onde:
* - dd = O dia, com dois dígitos. Ex: 27
* - MM = O mês, com dois dígitos. Ex: 11 (OBS: O "MM" deve ser maiúsculo,
* pois "mm" significa "minutos")
* - yyyy = O ano, com quatro dígitos. Ex: 2007
*/
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String strData = "23/10/2007";
Date data = sdf.parse(strData); // conversão da data
// Verifica se a data é igual à data atual
boolean igual = data.equals(new Date());
// Verifica se a data é mais antiga que data atual
boolean maisAntiga = data.before(new Date());
// Verifica se a data é mais recente que data atual
boolean maisRecente = data.after(new Date());