Vorrei ricavare, date due date, la differenza in giorni .... come faccio ? CI sarà un metodo già disponibile in qualche classe (di Date o Calendar o altro ?) ?
Vorrei ricavare, date due date, la differenza in giorni .... come faccio ? CI sarà un metodo già disponibile in qualche classe (di Date o Calendar o altro ?) ?
SO : Windows XP - Linux Gentoo
Java - Visual Basic - C++
puoi provare a fare in questo modo:
ottieni i millisecondi della data1 e della data due
li sottrai
col risultato setti un nuovo oggetto calendar
dal calendar ti ottieni il numero dell'anno e il numero del giorno all'interno dell'anno, e poi te lo calcoli
è un po' contorto ma dovrebbe funzionare
Nei metodi disponibili non ho trovato niente che potesse essere utile
Date uno, due;
long diff = uno.getTime() - due.getTime();
long giorni = diff / 1000 / 60 / 60 / 24;
Ho trovato molte difficoltà nel settare una data con le classi Calendar o Date.
Mi spiego meglio : le date che ho sono due oggetti di classe "Data" (che una classe creata da me con tre attributi privati : int giorno, int mese e int anno).
Quindi mi conviene convertirle in oggetti di classe Calendar o Date (anche se ancora non ci riesco .... ottengo delle date diverse ... mah?) oppure mi faccio un calcoletto in giorni ?
SO : Windows XP - Linux Gentoo
Java - Visual Basic - C++
visto che esistono classi che gestiscono date non c'è bisogno di crearne una, Calendar ha un metodo set che imposta i campi della data
per ottenere una data utilizzando un oggetto calendar:
e poi puoi utilizzare il metodo suggerito da floydcodice:Calendar g = Calendar.getInstance(); g.set(2003,0,17); // setta la data odierna Date d = g.getTime(); // ottiene l'oggetto Date di java![]()
Faccio un passo indietro.
Ho un DB (Access). Da questo devo ricavare dei dati, uno dei quali è un campo data. Ottengo la data con il metodo getString("nome campo") (della classe ResultSet).
Purtroppo la data che ricavo non è quella conenuta nel campo del db. Da cosa dipende .... voi avete mai avuto problemi di questo tipo ... sono io che non so usare le classi di java per gestire le date?
SO : Windows XP - Linux Gentoo
Java - Visual Basic - C++
Date data = (java.util.Date)rs.getDate("campo");
devi castare dato che getDate ritorna un java.sql.Date
Ti posto il codice :
per l'acquisizione della data dal DB :
_inserzione.setData(new Data((Date)inserzioni.getDate("Data_inserimento")) );
_inserzione è un'istanza di una classe create da me.
inserzioni è un'istanza di classe ResultSet
Data è la classe che uso per gestire le date
Un costruttore della classe data ha come par. d'ingresso un oggetto di classe Date :
public Data(Date _data){
giorno=_data.getDate();
mese=_data.getMonth()+1;
anno=_data.getYear()+1900;
}
Ora sembra che le cose cominciano a quadrare. E' giusta questa conversione?
Uso una classe personalizzata per le date giusto perchè l'avevo già fatta in precedenza![]()
SO : Windows XP - Linux Gentoo
Java - Visual Basic - C++
sono metodi deprecati
fai un calendar
public Data(Date _data) {
Calendar c = Calendar.getInstance;
c.setTime(_data);
giorno=c.get(Calendar.DAY_OF_MONTH);
mese=c.get(Calendar.MONTH);
anno=c.get(Calendar.YEAR);
}
così sono buoni, il cast sembra ok ma provalo, è il modo + sicuro