Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479

    Lavorare con ore e date

    Ciao a tutti
    dovrei lavorare con le ore e le date in Java. Ho visto che esiste la classe GregorianCalendar solo che non mi pare offra una grande protezione dagli errori, nel senso io posso mettere dentro una qualsiasi data anche inesistente. Ho provato a cercare su internet ma nn ho trovato niente, ci sono delle classi che offrono un qualche controllo sulla data e ora inserita ?
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Il modo più sicuro di ottenere una data corretta è quella di usare calendari grafici, in modo tale che l'utente possa selezionare solo una data tra quelle proposte del software.

    Immagino che tu voglia un inserimento da aree di testo, in questo caso credo che la funzione dovresti scrivertela tu. Non credo che sia molto complicato.
    Il principio su cui mi baserei io è il seguente:

    Se creo la data con il numero del mese sballato (ad es. 14) allora, una volta creato l'oggetto GregorianCalendar, se chiedo indietro il numero del mese otterrò un valore diverso (ad es. 2).

    Potresti estendere GregorianCalendar e fare un metodo creaDataSicura (giorno, mese, anno, ora,...) che crea la data, ma prima di restituirla verifica se tutti i campi corrispondono. Nel caso vi sia una incongruenza dovrebbe lanciare una eccezione.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  3. #3
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    eh si per creare una classe che mi fa il controllo non ho problemi, infatti volevo saspere se c era gia qualcosa di pronto...ok mi metto a lavoro..heeh
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

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

    Re: Lavorare con ore e date

    Originariamente inviato da Poker1
    nel senso io posso mettere dentro una qualsiasi data anche inesistente.
    Puoi verificarlo, vedi qui
    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 L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    adesso provo, ma cosa e setLenient
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  6. #6
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Rispondo io:

    da setLenient
    Specify whether or not date/time interpretation is to be lenient. With lenient interpretation, a date such as "February 942, 1996" will be treated as being equivalent to the 941st day after February 1, 1996. With strict interpretation, such dates will cause an exception to be thrown.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  7. #7
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    si avevo letto sulle api, ma nn riesco a capire cosa significhi hehe

    edit

    capito
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  8. #8
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Grosso modo la mia soluzione e quella di andbin non sono tanto diverse (io come un asino faccio a manina, lui usa una funzione già pronta..), per cui ero sicuro che ci saresti arrivato da solo!
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Poker1
    si avevo letto sulle api, ma nn riesco a capire cosa significhi hehe
    lenient significa "indulgente", "clemente".
    Se un DateFormat o un Calendar è "lenient" allora è indulgente nel senso che accetta date non corrette e cerca di interpretarle come può. Se non è lenient, non accetta date scorrette.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    adesso ho un altro problema...
    se io creo un GregorianCalendar di questo tipo

    SimpleDateFormat formatoItaliano = new SimpleDateFormat("dd/MM/yyyy hh:mm");
    GregorianCalendar cad = new GregorianCalendar(2009, 3, 12, 18, 15 );

    mi da come risultato dell ora 6 e 15.
    Io pero vorrei mantenere l-ora PM, cioe che mi stampasse 18 e 15
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

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.