Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di Fra
    Registrato dal
    Oct 1999
    Messaggi
    221

    [Java] Differenza tra date

    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++

  2. #2
    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
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    Date uno, due;
    long diff = uno.getTime() - due.getTime();
    long giorni = diff / 1000 / 60 / 60 / 24;

  4. #4
    Utente di HTML.it L'avatar di Fra
    Registrato dal
    Oct 1999
    Messaggi
    221

    Vi ringrazio per le risposte ....

    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++

  5. #5
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    visto che esistono classi che gestiscono date non c'è bisogno di crearne una, Calendar ha un metodo set che imposta i campi della data

  6. #6
    per ottenere una data utilizzando un oggetto calendar:
    codice:
    
    Calendar g = Calendar.getInstance();
    g.set(2003,0,17); // setta la data odierna
    Date d = g.getTime(); // ottiene l'oggetto Date di java
    
    e poi puoi utilizzare il metodo suggerito da floyd
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  7. #7
    Utente di HTML.it L'avatar di Fra
    Registrato dal
    Oct 1999
    Messaggi
    221
    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++

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    Date data = (java.util.Date)rs.getDate("campo");
    devi castare dato che getDate ritorna un java.sql.Date

  9. #9
    Utente di HTML.it L'avatar di Fra
    Registrato dal
    Oct 1999
    Messaggi
    221
    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++

  10. #10
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.