PDA

View Full Version : [JAVA] Help.. addizionare dei giorni a una data .. e confrontarla con quell'attuale.


Alello
19-10-2008, 19:28
allora ho un'array di stringhe .. e devo addizionare la data prendendo la data in un campo e i giorni in un altro campo.

e dopo devo fare il confronto di questa data con quella attuale..

su google ho trovato:

dateadd per addizionare la data

CompareTo per confrontare 2 date

e c.getTime() per vedere la data attuale


questi devo usare ? e come nn ci riesco ... :(

wisher
19-10-2008, 21:40
Perchè usi un array di stringhe? Non sarebbe meglio strutturare l'informazione in degli oggetti Date tramite un DateFormat?
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Date.html
http://java.sun.com/j2se/1.4.2/docs/api/java/text/DateFormat.html

Oceans11
19-10-2008, 21:40
allora ho un'array di stringhe .. e devo addizionare la data prendendo la data in un campo e i giorni in un altro campo.
Scusa ma non ho capito...puoi essere più preciso?

e dopo devo fare il confronto di questa data con quella attuale..

su google ho trovato:

dateadd per addizionare la data
CompareTo per confrontare 2 date
e c.getTime() per vedere la data attuale
questi devo usare ? e come nn ci riesco ... :(

Dunque, la classe Date di java.util offre il metodo compareTo(Date anotherDate) che confronta temporalmente 2 date. Questa classe tratta il tempo in modo particolare però, come i millisecondi passati dalla mezzanotte del 1 gennaio 1970 GMT. Tutti gli altri metodi sono deprecati in favore di Calendar.

La classe GregorianCalendar (sempre java.util) è una diretta sottoclasse di Calendar e offre metodi per impostare, aggiungere, ottenere ora/data.
In più il metodo getTime() restituisce una Date, con cui puoi fare il confronto.

EDIT: il metodo compareTo ce l'ha anche Calendar, quindi non serve passare per Date.

Alello
19-10-2008, 22:12
data attuale risolto

Date oggi = new Date();
String formatoData = "dd/MM/yyyy";
SimpleDateFormat formattazioneData = new SimpleDateFormat(formatoData);
String dataAttuale = formattazioneData.format(oggi);

CompareTo
lo vediamo dopo .

PROBLEMA ATTUALE

ho un array di stringhe. di nome Noleggi.
il terzo elemento (Noleggi[2]) è una stringa di questo tipo (gg/mm/aaaa)
per esempio : 25/10/2008

adesso devo convertire questa stringa in data . (tipo Date)
e mi da errore.

ho provato così :

String formatoData="dd/MM/yyyy"
SimpleDateFormat StringaToData = new SimpleDateFormat(formatoData) Date dataConvertita = null;
dataConvertita = StringaToData.parse(lineaNoleggi[2]); //errore

ma mi da errore al terzo rigo. mi dice:
Unhandled exception type ParseException



dopo aver fatto ciò . devo addizzionare un numero di giorni a questa data .
esempio : 25/10/2008 + 10 giorni = 4/11/2008

Alello
19-10-2008, 22:56
:help: :(

domani entro le 11 dovrei consegnare il progetto

Oceans11
19-10-2008, 22:57
Vedi se questo può andarti bene:


SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Calendar c = Calendar.getInstance();
System.out.println(dateFormat.format(c.getTime()));
String dataACaso = "25/10/2008";
try {
c.setTime(dateFormat.parse(dataACaso));
}
catch (ParseException e) {
e.printStackTrace();
}
System.out.println(dateFormat.format(c.getTime()));
c.add(Calendar.DAY_OF_MONTH, 10);
System.out.println(dateFormat.format(c.getTime()));

l'errore stava nel fatto che non gestivi la ParseException.

Oceans11
19-10-2008, 23:00
Non per fare il pignolo, ma un array di stringhe che si chiama noleggi, il cui 3 elemento è una cosa che rappresenta una data, mi sembra proprio un ammucchio di dati eterogenei.....:D

Alello
20-10-2008, 09:12
ho letto adesso i messaggi..

Vedi se questo può andarti bene:
codice:...
l'errore stava nel fatto che non gestivi la ParseException.

feci anche così prima che me lo dicessi .. ma mi dava cmq errore nella ParseException...

Non per fare il pignolo, ma un array di stringhe che si chiama noleggi, il cui 3 elemento è una cosa che rappresenta una data, mi sembra proprio un ammucchio di dati eterogenei.....:D


Beh vallo a dire al prof .. la traccia è così .. :muro:



Cmq infine ieri mi scocciai ... persi due ore a capire come far funzionare quei comandi .. gregorian e simpledateformat.. e a finale in 40 minuti mi scrissi le due funzioni manualmente .. e le richiamo dove mi servono ..


Grazie lo stesso

Bye Bye