Date

Questo programma chiede l'inserimento della propria data di nascita e quindi esegue alcune operazioni: calcola in quale giorno della settimana siete nati, quanti giorni avete vissuto e quanti ne mancano al vostro prossimo compleanno. In seguito inserendo sempre un numero intero calcola la data in cui vesteggerete un particolare anniversario, come il millesimo giorno di vita, ecc. Inserendo al posto della data di nascita, la data del vostro matrimonio o fidanzamento potrete sapere quando sarà il vostro 1000 giorno d'amore.

Come si può vedere dai comandi 'import' il programma richiede delle speciali librerie. Quindi il codice qui sotto serve solo per illustrare il funzionamento del programma.

 

import prog.io.*;

import prog.utili.Data;

import prog.utili.MeseDellAnno;

import prog.utili.GiornoDellaSettimana;

 

class Data1 {

                public static void main(String[] args) {

                               ConsoleInputManager tastiera = new ConsoleInputManager();

                               ConsoleOutputManager video = new ConsoleOutputManager();

                              

                               //nuovo oggetto Data a cui viene assegnata la data corrente

                               Data oggi = new Data();

                              

                               //nuovo tipo enumerativo per oggi

                               GiornoDellaSettimana oggigiorno;

                               oggigiorno = oggi.getGiornoDellaSettimana();

                              

                               //verifica se quest'anno è bisestile

                               boolean oggibis;

                               oggibis = oggi.isInAnnoBisestile();

                               //mostra il risultato

                              

                                                                                             

                               //stampa la data corrente + il giorno della settimana

                               video.println("Data odierna: " + oggigiorno.toString() +

                               " " + oggi.toString());

                              

                               //stampa l'info sull'anno bisestile

                               if (oggibis)

                                               video.println("Quest'anno e' bisestile");

                               else

                                               video.println("Quest'anno non e' bisestile");

                              

                               //inserimento di una data

                               video.println("Inserisci la tua data di nascita: ");

                               int giorno, mese, anno;

                               giorno = tastiera.readInt("Giorno: ");

                               mese = tastiera.readInt("Mese: ");

                               anno = tastiera.readInt("Anno: ");

                              

                               //riga di separazione

                               video.println("");

                              

                               //nuovo oggetto a cui viene assegnata la data inserita

                               Data nascita = new Data(giorno, mese, anno);

                              

                               //calcolo del giorno di nascita

                               GiornoDellaSettimana nascitagiorno;

                               nascitagiorno = nascita.getGiornoDellaSettimana();

                              

                               //tipo enumerativo per il calcolo del mese di nascita

                               MeseDellAnno mesenascita = nascita.getMeseDellAnno();

                              

                               //calcola se l'anno di nascita era bisestile

                               boolean nascitabis;

                               nascitabis = nascita.isInAnnoBisestile();

                                                              

                               //stampa la data di nascita

                               video.println("Data di nascita: " + nascitagiorno.toString() +

                               " " + nascita.getGiorno() + " " + mesenascita.toString() +

                               " " + nascita.getAnno());

                              

                               //stampa che tipo di anno era

                               if (nascitabis)

                                               video.println("Era un anno bisestile");

                               else

                                               video.println("NON era un anno bisestile");

                              

                               //linea di separazione

                               video.println("");

                              

                               //stampa la data odierna

                               video.println("Data odierna: " + oggigiorno.toString() +

                               " " + oggi.toString());

                              

                               //linea di separazione

                               video.println("");

                              

                               //variabile e oggetto che stabiliscono i giorni vissuti

                               int giornifa;

                               giornifa = nascita.quantoManca(oggi);

                               //stampa il risultato

                               video.println("Hai vissuto " + giornifa + " giorni.");

                              

                               //calcola il tuo prossimo compleanno

                               //crea la classe compleanno

                               Data compleanno = new Data(giorno, mese, oggi.getAnno());

                               //calcola quanti giorni mancano

                               int mancagiorni;

                               mancagiorni = oggi.quantoManca(compleanno);

                              

                               //nel caso il tuo compleanno fosse già passato in

                               //quest'anno, allora calcola il prossimo

                               if (mancagiorni < 0) {

                                               compleanno = new Data(giorno, mese, (oggi.getAnno() + 1));

                                               mancagiorni = oggi.quantoManca(compleanno);

                               }

                              

                               //stampa il risultato

                               video.println("Al tuo prossimo compleanno mancano " + mancagiorni +

                               " giorni.");

                              

                               //chiede un numero di giorni e calcola la data partendo dal compleanno

                               int traguardo = tastiera.readInt("Quanti giorni vuoi raggiungere? ");

                               Data datatraguardo = new Data((giorno + traguardo), mese, anno);

                              

                                //stampa il giorno

                               video.println("");

                               video.println("Raggiungerai i " + traguardo + " giorni, il " +

                               datatraguardo.toString());

               

                                              

                }

}