Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    45

    [JAVA] confrontare date ed ore

    Salve a tutti...
    Dovrei confrontare due date, e voi direte dove è il problema. Il problema è dato dal fatto che le date da confrontare devono essere confrontate nel seguente modo:

    ho due date:

    codice:
    GregorianCalendar dataAttuale=new GregorianCalendar(); 
    GregorianCalendar data=new GregorianCalendar();
    data.setTime(c.getData());
    setto la variabile "data" con una data prelevata da DB.
    Ora arriviamo al nocciolo della questione:
    devo confrontare le due date, in modo da verificare che in "data" la data sia quella di oggi e che l'ora sia minore o uguale a quella attuale.

    In oltre dovrei verificare che per le date precedenti a quella attuale devo solo controllare l'ora, che deve essere minore o uguole a l'ora attuale.

    qualcuno può darmi una mano??
    Attendo notizie....

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] confrontare date ed ore

    Originariamente inviato da imband
    devo confrontare le due date, in modo da verificare che in "data" la data sia quella di oggi e che l'ora sia minore o uguale a quella attuale.

    qualcuno può darmi una mano??
    Io farei così:

    codice:
    Calendar dataAtt = new GregorianCalendar ();
    
    Calendar dataAttIniz = (Calendar) dataAtt.clone ();
    dataAttIniz.set (Calendar.HOUR_OF_DAY, 0);
    dataAttIniz.set (Calendar.MINUTE, 0);
    dataAttIniz.set (Calendar.SECOND, 0);
    dataAttIniz.set (Calendar.MILLISECOND, 0);
    
    Calendar data = new GregorianCalendar ();
    data.setTime (c.getData());
    
    if (data.compareTo (dataAttIniz) >= 0 && data.compareTo (dataAtt) <= 0)
        System.out.println ("ora di oggi con ora inferiore");
    In pratica dataAtt è la data attuale esatta mentre dataAttIniz è la data attuale ma con l'ora azzerata (0:00:00). Se 'data' è nel range di queste due date, allora sei nel giorno attuale ma con l'ora inferiore/uguale.

    Nota: compareTo di Calendar c'è solo da Java 5 in poi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    45
    Ok grazie... Risolto

    ora stavo vedendo per quando devo verificare solo l'orario che sia uguale a quello attuale e la data sia precedente a quella di oggi..

    Ho pensato di aggiungere un if:
    [CODE]
    if(data.compareTo (dataAttuale) <= 0)
    [\CODE]

    Cosi verifico che data sia o meno minore di dataAttuale

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da imband
    ora stavo vedendo per quando devo verificare solo l'orario che sia uguale a quello attuale e la data sia precedente a quella di oggi..
    Se la data è precedente da quella attuale lo puoi sapere facendo il test:

    if (data.compareTo (dataAttIniz) < 0)

    Per testare se l'orario invece è proprio uguale, mi sa che devi azzerare le due date (lasciando l'orario) e poi confrontare i due calendar. O prelevare solo i campi dell'orario e confrontarli uno per uno.

    P.S.: È un test un po' "strano" questo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    45
    Grazie risolto...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.