Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    95

    GregorianCalendar: inserimento della data e dell'orario

    Voglio che miaData rappresenti le 15 del 21 giugno 2005 per esempio

    codice:
    GregorianCalendar miaData = new GregorianCalendar();
    miaData.setLenient(false);
    miaData.set(2005,5,21,15,00);
    System.out.println(miaData.get(Calendar.DAY_OF_MONTH)+"/"+miaData.get(Calendar.MONTH)+1)+"/"+miaData.get(Calendar.YEAR));
    System.out.println(miaData.get(Calendar.HOUR_OF_DAY)+":"+ miaData.get(Calendar.SECOND));
    Perché la data viene stampata correttamente mentre l'ora è sballata?
    Ho trovato in rete cal.set(Calendar.AM_PM,Calendar.AM) ma non è obbligatorio ,i pare di aver capito e comunque non mi funziona.

    Grazie in anticipo!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Rudie Visualizza il messaggio
    codice:
    System.out.println(miaData.get(Calendar.DAY_OF_MONTH)+"/"+miaData.get(Calendar.MONTH)+1)+"/"+miaData.get(Calendar.YEAR));
    Innanzitutto questa riga è sintatticamente errata, manca una parentesi. Dovrebbe essere:

    System.out.println(miaData.get(Calendar.DAY_OF_MON TH)+"/"+(miaData.get(Calendar.MONTH)+1)+"/"+miaData.get(Calendar.YEAR));

    Quote Originariamente inviata da Rudie Visualizza il messaggio
    Perché la data viene stampata correttamente mentre l'ora è sballata?
    A parte l'ora (HOUR_OF_DAY è sulle 24 ore), non hai stampato i minuti ... solo i secondi.
    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
    Dec 2006
    Messaggi
    95
    Sulle parentesi è un errore di copia-incolla e sul SECOND... sono un perfetto idiota io! Tra le mille prove che ho fatto questa modifica mi è sfuggita!

    Se volessi settare i vari parametri singolarmente miaData.set(GregorianCalendar.HOUR_OF_DAY,16); funziona ed è scritto in maniera giusta no?

    codice:
    GregorianCalendar miaData = new GregorianCalendar();
    miaData.setLenient(false);
    miaData.set(2005,5,21,15,00);
    System.out.println(data.get(GregorianCalendar.DAY_OF_MONTH)+"/"+(data.get(GregorianCalendar.MONTH)+1)+"/"+data.get(GregorianCalendar.YEAR));
    System.out.println(data.get(GregorianCalendar.HOUR_OF_DAY)+":"+ data.get(GregorianCalendar.MINUTE));
    Inizialmente nella stampa avevo usato Calendar.xxx mentre ora ho messo GregorianCalendar.xxx: in entrambi i casi funziona ma perché? Essendo la seconda una versione successiva ha copiato delle cose ma non capisco perché funziona

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Rudie Visualizza il messaggio
    Se volessi settare i vari parametri singolarmente miaData.set(GregorianCalendar.HOUR_OF_DAY,16); funziona ed è scritto in maniera giusta no?
    Sì, è corretto.

    Quote Originariamente inviata da Rudie Visualizza il messaggio
    Inizialmente nella stampa avevo usato Calendar.xxx mentre ora ho messo GregorianCalendar.xxx: in entrambi i casi funziona ma perché?
    Sono costanti pubbliche di Calendar e vengono quindi "ereditate" da GregorianCalendar che è la sottoclasse di Calendar. Quindi tecnicamente non c'è differenza. Meglio generalmente usare Calendar.COSTANTE perché in questo modo è più chiaro che il campo è riferito al concetto generale di Calendar e non a qualcosa di più specifico (ed è anche più breve da scrivere).
    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
    Dec 2006
    Messaggi
    95
    Grazie mille andbin! Quindi lascio miaData di tipo GregorianCalendar e nei set/get metto Calendar giusto?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Rudie Visualizza il messaggio
    Grazie mille andbin! Quindi lascio miaData di tipo GregorianCalendar e nei set/get metto Calendar giusto?
    Riguardo le costanti (DAY_OF_MONTH, MONTH, ecc..) usa solo Calendar.COSTANTE

    Riguardo le variabili, se istanzi un GregorianCalendar, lo puoi assegnare ad una variabile di tipo GregorianCalendar o Calendar. La differenza è che GregorianCalendar ha metodi in più che Calendar non ha. Quindi se avessi bisogno di quelli, devi per forza usare GregorianCalendar. Mentre invece potresti avere altre situazioni in cui un codice deve funzionare con qualunque implementazione di Calendar, quindi devi usare il tipo più astratto, cioè Calendar.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    95
    Okay, ancora grazie!

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.