Pessoal preciso de uma ajuda de vcs em relação ao uso do método compareTo. Pois não está funcionado direito comigo.
Segue o código abaixo:
GregorianCalendarcalendar=newGregorianCalendar();DatedataAtual=calendar.getTime();DatehoraAtual=calendar.getTime();SimpleDateFormatformatData=newSimpleDateFormat("dd/MM/yyyy");SimpleDateFormatformatHora=newSimpleDateFormat("HH:mm:ss");StringnovoFormatoDataAtual=formatData.format(dataAtual);StringnovoFormatoDataUsuario=formatData.format(data2);//data2= data passada pelo usuárioStringnovoFormatoHoraAtual=formatHora.format(horaAtual);StringnovoFormatoHoraUsuario=formatHora.format(hora);//hora= data passada pelo usuário//compara as datas e as horasintcomparacaoData=novoFormatoDataUsuario.compareTo(novoFormatoDataAtual);intcomparacaoHora=novoFormatoHoraUsuario.compareTo(novoFormatoHoraAtual);
É o seguinte na linha:
int comparacaoData = novoFormatoDataUsuario.compareTo(novoFormatoDataAtual);
está retornado -1, sendo que o valor de novoFormatoDataUsuario é 12/12/2012 e o valor de novoFormatoDataAtual é 27/05/2011
o método compareTo irá retornar:
0, se iguais;
Positivo, se o primeiro elemento for MAIOR que o segundo
Negativo, se o primeiro elemento for MENOR que o segundo
Mais uma dúvida. Como eu converto a data que o usuário digitar no formulário que uma uma String para o formato Date para que eu possa usar o método CompareTo com datas???
Sim. Strings representam texto, somente texto e nada mais do que texto. Se o texto de entrada do seu usuário, pode ser convertido para um tipo mais apropriado, converta-o.
B
Burarama
Pessoal está ocorrendo mais um erro. É o seguinte estou comparando as datas no formato Date, até aí tudo beleza, mas quando comparo as datas sendo iguais, ou seja, o mesmo o compareTo retorna o valor -1.
As datas estão sendo comparadas da seguinte forma:
OBS: é cmo está saindo no System.out.println
Data passada pelo usuário: 2011-05-29
Data passada atual: Mon May 30 09:08:30 BRT 2011
ComareTo -1
Desde já agradeço.
ViniGodoy
Observe que na comparação ele leva em consideração as horas, minutos, segundos e centézimos. Zere esses campos das duas datas se você quiser só comparar dias.
B
Burarama
OK, amigo!
Mas, como eu faço para deixar a dataAtual no formato yyyy-MM-dd ???
OBS: Deixando-o a mesma no formato Date, ou seja, sem converter para String.
Detalhe. Ao invés de trabalhar com objeto do tipo Date, considere fortemente a possibilidade de trabalhar com objetos da classe Calendar. O calendar é o substituto do date.