Chi mi spiega il metodo set() per il calendario?

di il
7 risposte

Chi mi spiega il metodo set() per il calendario?

// Demonstrate Calendar
import java.util.Date;
import java.util.Calendar;

class Esempio {
  public static void main(String args[]) {
    String months[] = {
             "Jan", "Feb", "Mar", "Apr", 
             "May", "Jun", "Jul", "Aug",
             "Sep", "Oct", "Nov", "Dec"};

    // Create a calendar initialized with the
    // current date and time in the default
    // locale and timezone.
    Calendar calendar = Calendar.getInstance();

    // Display current time and date information.
    System.out.print("Date: ");
    System.out.print(months[calendar.get(Calendar.MONTH)]);
    System.out.print(" " + calendar.get(Calendar.DATE) + " ");
    System.out.println(calendar.get(Calendar.YEAR));

    System.out.print("Time: ");
    System.out.print(calendar.get(Calendar.HOUR) + ":");
    System.out.print(calendar.get(Calendar.MINUTE) + ":");
    System.out.println(calendar.get(Calendar.SECOND));

    // Set the time and date information and display it.
    calendar.set(Calendar.HOUR, 10);
    calendar.set(Calendar.MINUTE, 29);
    calendar.set(Calendar.SECOND, 22);

    System.out.print("Updated time: ");
    System.out.print(calendar.get(Calendar.HOUR) + ":");
    System.out.print(calendar.get(Calendar.MINUTE) + ":");
    System.out.println(calendar.get(Calendar.SECOND));
    Date data = new Date();//Aggiunte da me
    System.out.println(data);//Aggiunte da me
  }
}
Non capisco a cosa serve il metodo set per il caledario dato che dopo aver usato set() la data ritorna ad essere quella dell'ora di windows, chi mi illumina?

A presto

7 Risposte

  • Re: Chi mi spiega il metodo set() per il calendario?

    Alla fine invece di fare
    Date data = new Date();
    prova a fare
    Date data = calendar.getTime();
    In questo modo dovrebbe stampare la data giusta..ma tu cosa devi fare??
  • Re: Chi mi spiega il metodo set() per il calendario?

    Io nulla, sto leggendo un manuale di java, sono un principiante!
    Se interrompo l'esecuzione del programma per 10 secondo e poi scrivo:
    Date data = calendar.getTime();
    System.out.println(data);
    in teoria dovrei leggere?
    Tue Feb 19 22:29:32 CET 2013

    Come mai se scrivo:
    sleep(10000);
    ottengo un errore!
  • Re: Chi mi spiega il metodo set() per il calendario?

    Probabilmente è dovuto al fatto che non catturi l'eccezione (forse nel tuo libro le affronta più avanti).
    Il codice corretto dovrebbe essere questo
    
    try{
       Thread.sleep(10000);
    } catch (InterruptedException e){
       e.printStackTrace();
    }
    
  • Re: Chi mi spiega il metodo set() per il calendario?

    // Demonstrate Calendar
    import java.util.Date;
    import java.util.Calendar;
    
    class Esempio {
    	public static void main(String args[]) {
    		String months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
    				"Aug", "Sep", "Oct", "Nov", "Dec" };
    
    		// Create a calendar initialized with the
    		// current date and time in the default
    		// locale and timezone.
    		Calendar calendar = Calendar.getInstance();
    
    		// Display current time and date information.
    		System.out.print("Date: ");
    		System.out.print(months[calendar.get(Calendar.MONTH)]);
    		System.out.print(" " + calendar.get(Calendar.DATE) + " ");
    		System.out.println(calendar.get(Calendar.YEAR));
    
    		System.out.print("Time: ");
    		System.out.print(calendar.get(Calendar.HOUR) + ":");
    		System.out.print(calendar.get(Calendar.MINUTE) + ":");
    		System.out.println(calendar.get(Calendar.SECOND));
    
    		// Set the time and date information and display it.
    		calendar.set(Calendar.HOUR, 10);
    		calendar.set(Calendar.MINUTE, 29);
    		calendar.set(Calendar.SECOND, 22);
    
    		System.out.print("ORA AGGIORNATA: ");
    		System.out.print(calendar.get(Calendar.HOUR) + ":");
    		System.out.print(calendar.get(Calendar.MINUTE) + ":");
    		System.out.println(calendar.get(Calendar.SECOND));
    
    		try {
    			Thread.sleep(10000);
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    		Date data = calendar.getTime();
    		System.out.println("ORA AGGIORNATA + 10 SECONDI: " + data);
    	}
    }
    Date: Feb 19 2013
    Time: 2:24:9
    ORA AGGIORNATA: 10:29:22
    ORA AGGIORNATA + 10 SECONDI: Tue Feb 19 22:29:22 CET 2013
    Il blocco da te inserito funziona ma la data non cambia, è sempre 22:29:22... continuo a non capire a cosa serve questo set()... non ha molto senso il metodo... bloccare la data ad un valore prefissato...
  • Re: Chi mi spiega il metodo set() per il calendario?

    Il set setta...la data non la stai ricaricando.
  • Re: Chi mi spiega il metodo set() per il calendario?

    Non vorrei che l'utente stesse cercando di cambiare la data di sistema...
    La data di sistema non la cambi, con Java: Java non permette la modifica dei valori di sistema, se non tramite codice nativo.
    Quello che cambi è il valore della "lettura" della data di sistema, ovvero il valore della variabile dove questa lettura viene salvata.

    Ciao.
  • Re: Chi mi spiega il metodo set() per il calendario?

    Ho capito grazie mille
Devi accedere o registrarti per scrivere nel forum
7 risposte