## prog.utili
Class Data

    java.lang.Object
      prog.utili.Data

All Implemented Interfaces:
  java.io.Serializable, java.lang.Comparable<Data>

    public class Data

extends java.lang.Object
implements java.lang.Comparable<Data>, java.io.Serializable

Le sue istanze rappresentano date del calendario.

Version:
  2.0
Author:
  Mauro Ferrari, Giovanni Pighizzini
See Also:
  Serialized Form

Constructor Summary
`Data()` Costruisce una nuova data che rappresenta la data corrente, cioè la data relativa all'istante in cui viene invocato.
`Data(int g, int m, int a)` Costruisce una nuova data a partire dai tre argomenti che rappresentano, nell'ordine, giorno, mese e anno.
`Data(java.lang.String str)` Costruisce una nuova data a partire da una stringa nel formato `"gg.mm.aaaa"`.

Method Summary
`int` `compareTo(Data d)` Confronta la data che esegue il metodo con quella specificata come argomento.
`boolean` `equals(Data altra)` Restituisce true se e solo la data che esegue il metodo è uguale a quella specificata come argomento.
`boolean` `equals(java.lang.Object altra)` Restituisce true se e solo l'oggetto specificato come argomento è una data e la data che esegue il metodo è uguale a quella specificata dall'oggetto specificato come argomento.
`int` `getAnno()` Restituisce l'intero che rappresenta l'anno della data che esegue il metodo.
`static FormatoData` `getFormato()` Restituisce la costante enumerativa di `FormatoData` che descrive il formato utilizzato per la costruzione della stringa che rappresenta la data.
`int` `getGiorno()` Restituisce l'intero che rappresenta il giorno della data che esegue il metodo.
`GiornoDellaSettimana` `getGiornoDellaSettimana()` Restituisce il valore del tipo enumerativo `GiornoDellaSettimana` che rappresenta il giorno della settimana corrispondente alla data che esegue il metodo.
`int` `getMese()` Restituisce l'intero che rappresenta il mese della data che esegue il metodo.
`MeseDellAnno` `getMeseDellAnno()` Restituisce il valore del tipo enumerativo `MeseDellAnno` che rappresenta il mese dell'anno corrispondente alla data che esegue il metodo.
`static char` `getSeparatore()` Restituisce il separatore utilzzato per separare giorno, mese ed anno nella stringa che rappresenta la data.
`boolean` `isInAnnoBisestile()` Restituisce `true` se l'anno della data che esegue il metodo è bisestile, `false` altrimenti.
`boolean` `isMaggiore(Data altra)` Confronta la data che esegue il metodo con quella fornita come argomento e restituisce `true` se la data che esegue il metodo segue quella fornita come argomento.
`boolean` `isMinore(Data altra)` Confronta la data che esegue il metodo con quella fornita come argomento e restituisce `true` se la data che esegue il metodo precede quella fornita come argomento.
`static Data` `parseData(java.lang.String str)` Restituisce un oggetto di tipo data che rappresenta la data specificata da una stringa nel formato `"gg.mm.aaaa"`.
`int` `quantoManca(Data altra)` Restituisce il numero di giorni trascorsi dalla data rappresentata dall'oggetto che esegue il metodo a quella rappresentata dall'oggetto fornito tramite l'argomento.
`static void` `setFormato(FormatoData f)` Definisce il formato utilizzato per la costruzione della stringa che rappresenta la data.
`static void` `setSeparatore(char c)` Definisce il separatore utilizzato per separare giorno mese ed anno nella stringa che rappresenta la data.
`java.lang.String` `toString()` Restituisce la stringa che rappresenta la data che esegue il metodo.

Methods inherited from class java.lang.Object
`getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Data

    public Data()

  Costruisce una nuova data che rappresenta la data corrente, cioè la data relativa all'istante in cui viene invocato.

### Data

    public Data(int g,
                int m,
                int a)

  Costruisce una nuova data a partire dai tre argomenti che rappresentano, nell'ordine, giorno, mese e anno.

  Parameters:
    `g` - il giorno.
    `m` - il mese.
    `a` - l'anno.

### Data

    public Data(java.lang.String str)

  Costruisce una nuova data a partire da una stringa nel formato `"gg.mm.aaaa"`. Se la stringa non ha il formato corretto si verifica un errore in fase di esecuzione.

  Parameters:
    `str` - la stringa che specifica la data.

Method Detail

### compareTo

    public int compareTo(Data d)

  Confronta la data che esegue il metodo con quella specificata come argomento.

  Specified by:
    `compareTo` in interface `java.lang.Comparable<Data>`
  Parameters:
    `d` - la data da confrontare con quella che esegue il metodo.
  Returns:
    restituisce un numero intero minore di zero se la data che esegue il metodo è minore di quella fornita come argomento, restituisce zero se le due date sono uguali e restituisce un intero maggiore zero se la data che esegue il metodo segue quella specificata come argomento.

### equals

    public boolean equals(Data altra)

  Restituisce true se e solo la data che esegue il metodo è uguale a quella specificata come argomento.

  Returns:
    `true` se la data che esegue il metodo è uguale a quella fornita come argomento.

### equals

    public boolean equals(java.lang.Object altra)

  Restituisce true se e solo l'oggetto specificato come argomento è una data e la data che esegue il metodo è uguale a quella specificata dall'oggetto specificato come argomento.

  Overrides:
    `equals` in class `java.lang.Object`
  Returns:
    `true` se la data che esegue il metodo è uguale a quella specificata dall'oggetto fornito come argomento.

### getAnno

    public int getAnno()

  Restituisce l'intero che rappresenta l'anno della data che esegue il metodo.

  Returns:
    l'anno della data che esegue il metodo.

### getGiorno

    public int getGiorno()

  Restituisce l'intero che rappresenta il giorno della data che esegue il metodo.

  Returns:
    il giorno della data che esegue il metodo.

### getGiornoDellaSettimana

    public GiornoDellaSettimana getGiornoDellaSettimana()

  Restituisce il valore del tipo enumerativo `GiornoDellaSettimana` che rappresenta il giorno della settimana corrispondente alla data che esegue il metodo.

  Returns:
    il giorno dela settimana corrispondente alla data che esegue il metodo.

### getMese

    public int getMese()

  Restituisce l'intero che rappresenta il mese della data che esegue il metodo.

  Returns:
    il mese della data che esegue il metodo.

### getMeseDellAnno

    public MeseDellAnno getMeseDellAnno()

  Restituisce il valore del tipo enumerativo `MeseDellAnno` che rappresenta il mese dell'anno corrispondente alla data che esegue il metodo.

  Returns:
    il mese dell'anno corrispondente alla data che esegue il metodo.

### isInAnnoBisestile

    public boolean isInAnnoBisestile()

  Restituisce `true` se l'anno della data che esegue il metodo è bisestile, `false` altrimenti.

  Returns:
    `true` se l'anno a cui appartiene la data che esegue il metodo è bisestile, `false` altrimenti.

### isMaggiore

    public boolean isMaggiore(Data altra)

  Confronta la data che esegue il metodo con quella fornita come argomento e restituisce `true` se la data che esegue il metodo segue quella fornita come argomento.

  Parameters:
    `altra` - la data da confrontare con quella che esegue il metodo.
  Returns:
    `true` se la data che esegue il metodo segue quella fornita come argomento.

### isMinore

    public boolean isMinore(Data altra)

  Confronta la data che esegue il metodo con quella fornita come argomento e restituisce `true` se la data che esegue il metodo precede quella fornita come argomento.

  Parameters:
    `altra` - la data da confrontare con quella che esegue il metodo.
  Returns:
    `true` se la data che esegue il metodo precede quella fornita come argomento.

### quantoManca

    public int quantoManca(Data altra)

  Restituisce il numero di giorni trascorsi dalla data rappresentata dall'oggetto che esegue il metodo a quella rappresentata dall'oggetto fornito tramite l'argomento. In particolare, se la data rappresentata dall'oggetto che esegue il metodo precede quella fornita tramite l'argomento, il risultato sarà un numero positivo (ad esempio, se le due date sono rispettivamente 31 dicembre 2002 e 1 gennaio 2003, il risultato sarà 1), se invece la segue il risultato sarà un numero negativo (se le due date sono rispettivamente 1 gennaio 2003 e 31 dicembre 2002, il risultato sarà -1).

  Parameters:
    `altra` - la data rispetto alla quale calcolare i giorni trascorsi.
  Returns:
    un intero che rappresenta il numero di giorni trascorsi fra le due date.

### toString

    public java.lang.String toString()

  Restituisce la stringa che rappresenta la data che esegue il metodo. Il formato è stabilito tramite il metodo `setFormato(prog.utili.FormatoData)`.

  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    la stringa che rappresenta la data.

### getFormato

    public static FormatoData getFormato()

  Restituisce la costante enumerativa di `FormatoData` che descrive il formato utilizzato per la costruzione della stringa che rappresenta la data.

  Returns:
    il formato.

### getSeparatore

    public static char getSeparatore()

  Restituisce il separatore utilzzato per separare giorno, mese ed anno nella stringa che rappresenta la data.

  Returns:
    il separatore.

### parseData

    public static Data parseData(java.lang.String str)
                          throws SintassiDataScorretta

  Restituisce un oggetto di tipo data che rappresenta la data specificata da una stringa nel formato `"gg.mm.aaaa"`.

  Parameters:
    `str` - la stringa a partire dalla quale costruire la data.
  Returns:
    la data costruita.
  Throws:
    `SintassiDataScorretta` - se il formato della stringa non è quello richiesto.

### setFormato

    public static void setFormato(FormatoData f)

  Definisce il formato utilizzato per la costruzione della stringa che rappresenta la data. I valori possibili dell'argomento sono le costanti del tipo enumerativo `FormatoData`.

  Parameters:
    `f` - il formato.

### setSeparatore

    public static void setSeparatore(char c)

  Definisce il separatore utilizzato per separare giorno mese ed anno nella stringa che rappresenta la data. Di default il separatore è il punto ('.').

  Parameters:
    `c` - il nuovo separatore.