PDA

Visualizza la versione completa : [JAVA/JSP] Confronto date


79Kuntz79
27-10-2005, 19:36
Ciao amici,
ho un grande problema, non riesco a fare un confronto tra 2 date.
In pratica ho una stringa di questo tipo:
String data = "23/10/2005";

Dovrei fare il confronto di questa stringa con la data di oggi.

Potere aiutarmi?
Grazie mille.

eumene
27-10-2005, 20:03
Hai proprio una stringa o una data che converti in stringa?

Comunque, se vogliamo risolvere il problema specifico che hai segnalato eccoti il codice:




// Genero data partendo da una stringa che rispetti il pattern
// gg/mm/aaaa
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd/MM/yyyy");
java.util.Date daConfrontare = sdf.parse("23/10/2005");

// Catturo la data di oggi
java.util.Date oggi = java.util.GregorianCalendar.getInstance().getTime( );

// Faccio confronto
if(oggi.compareTo(daConfrontare)<0) {
System.out.println("oggi prima di daConfrontare");
} else if(oggi.compareTo(daConfrontare)>0) {
System.out.println("oggi dopo di daConfrontare");
} else if(oggi.compareTo(daConfrontare) == 0) {
System.out.println("oggi uguale a daConfrontare");
}


Considera che daConfrontare ha come orario 00:00, quindi se adesso fosse 23/10/2005 12:00, risulterebbe che "oggi dopo di daConfrontare"

Ciao

floyd
28-10-2005, 09:39
ottimizzandolo


String data = "23/10/2005";
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try {
Date toCompare = sdf.parse(data);
Date today = new Date();
int compare = toCompare.compareTo(today);
if (compare < 0)
System.out.println("prima");
else if (compare > 0)
System.out.println("dopo");
else
System.out.println("uguali");
}
catch (ParseException pex) {
}

79Kuntz79
28-10-2005, 12:45
ciao amici,
proprio quello che mi serviva.
Grazie mille.

79Kuntz79
30-10-2005, 15:39
ciao amici,
in verit eseguendo lo script mi sono accorto che non quello che mi serviva.
A me serve che mi esce la differenza dei giorni. Esempio

data vecchia = 23/10/2005;
data oggi = 30/10/2005;

oggi - vecchia = 7

Potete aiutarmi?

GRazie.

79Kuntz79
30-10-2005, 16:03
ho risolto ecco:

long sax = (today.getDate() - toCompare.getDate());

:)

79Kuntz79
30-10-2005, 16:23
ragazzi sto impazzendo.
Purtroppo lo sscript mi funaziona soltnato per i giorni.
A me serve fare la differenza anche dei mesi ed anni esempio:

30/10/2005 - 30/10/2004 = 365;

GRazei mille a tutti

79Kuntz79
30-10-2005, 23:47
ecco amici ci sono riuscito:

long sax = ((today.getTime() - toCompare.getTime())/60/60/24/1000);

Loading