Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 15 su 15
  1. #11
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86

    Risolto

    Alla fine in qualche modo ho risolto..

    Riporto il metodo per il controllo della validità della data,
    per l'ora e per il formato della data ho utilizzato un' espressione regolare
    in Javascript nella JSP che presenta i risultati

    public static boolean dataValido(String dataNew) {
    String formatoModi = "dd/MM/yyyy";
    try {
    if (dataNew.equals(""))
    return true;
    SimpleDateFormat formatter1 = new SimpleDateFormat(formatoModi);
    long dataInserita = formatter1.parse(dataNew).getTime();
    long dataCorrente = Calendar.getInstance().getTime().getTime();
    if(dataInserita > dataCorrente)
    return false;
    return dataEsistente(formatter1, dataNew);
    } catch (Exception e) {
    return false;
    }
    }

    public static boolean dataEsistente(SimpleDateFormat formatter, String dataNew) {
    boolean exist =true;
    try {
    int giorno = Integer.parseInt(dataNew.substring(0, 2));
    if(giorno<1)
    return false;
    int mese = Integer.parseInt(dataNew.substring(3, 5));
    if(mese<1 || mese>12)
    return false;
    int anno = Integer.parseInt(dataNew.substring(6));
    if(mese==1 || mese==3 || mese==5 || mese==7 || mese==8 || mese==10 || mese==12){
    if(giorno>31)
    return false;
    }
    if(mese==4 || mese==6 || mese==9 || mese==11){
    if(giorno>30)
    return false;
    }
    if(mese==2){
    if(annoBisestile(anno)){
    if(giorno>29)
    return false;
    }
    else
    if(giorno>28)
    return false;
    }
    } catch (NumberFormatException e) {
    return false;
    }
    return exist;
    }

    /*
    * Stabilisce se un anno è bisestile o meno
    */

    public static boolean annoBisestile(int anno) {
    if((anno%400==0) || ((anno%4==0) && (anno%100!=0)))
    return true;
    else
    return false;
    }

    Grazie

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

    Re: Risolto

    Originariamente inviato da valeof
    Alla fine in qualche modo ho risolto..

    Riporto il metodo per il controllo della validità della data,
    Oh cavoli .... ma non c'è bisogno di tutto 'sto casino di codice per verificare se una data in String è valida!!

    Basta creare un DateFormat (es. SimpleDateFormat), impostare setLenient(false) (perché altrimenti per default è lenient!!!!) e quindi invocare parse().
    Tutto qui.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #13
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86

    Re:

    Ho provato,
    ma se inserivo ad esempio 32/01/2007 non mi dava errore


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

    Re: Re:

    Originariamente inviato da valeof
    ma se inserivo ad esempio 32/01/2007 non mi dava errore
    Perché era "lenient".
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #15
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86

    RE:

    Allora ho dimenticato di settare lenient a false

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