import static java.lang.System.*;  // cf. Java 5 
import java.util.*;			// pour accéder à Calendar, Date de JDK   ...
/**
  * Classe 'date_t' :  classe publique pour tester la classe 'DATE' 
  * @author   (c) ~/2A env. 
  * @version   1.15   2007.11.04
  * @since      1.0     2006.08.26
   * @see         DATE
   *@see          deuxRef
   *@see          datesEgales
    *@see         objSansRef
   *@see          es
  */
public class date_t  {
	/** Méthode principale publique  de classe 'main(...)'.
	  * Elle utilise la classe 'es' pour accéder aux méthodes de classe:
	  *    attente() - affichage de l'heure de fin d'exécution,
	  * @param args Tableau de chaînes pour ligne de commande éventuelle
	  */	
	 public static void main(String [] args)  {	

		 out.println("\ndate_t : Premiers tests de la classe 'DATE'...)   ");
		 out.println("(c)~/2A env. - MAJ: 2007.11.04  17h54 - A DEBOGUER et COMPLETER ...\n");
		 out.println("Usage conseill\u00e9:      java    date_t    unJour   unMois   uneAnnee\n");
		
		DATE  date1, date2, date3, date4;
		Calendar calendar = new GregorianCalendar();
		Date  d1 = new Date();
		calendar.setTime(d1);
        int  aa =  calendar.get(Calendar.YEAR);    // aa:   current year
        int  mm =  1 + calendar.get(Calendar.MONTH);  // mm:   current month (Jan <=> 0 !)
        int  jj =  calendar.get(Calendar.DAY_OF_MONTH);  // jj:   current  day
 
		if (args.length  == 3)   {
	      		jj = Integer.parseInt(args[0]);
     			mm = Integer.parseInt(args[1]);
     			aa = Integer.parseInt(args[2]);
			if ( aa < 1582 &&  mm < 10  &&  jj < 15 )  {
				aa = 1582;  mm = 10;  jj =  15;
			}
		}	
	
	
		// A  fournir  votre date de naissance ou une autre date  :
		date1 = new DATE();
		date1.setDATE();
		out.println("date1 = "+ date1);

		date2 = new DATE(jj, mm, aa);   // <=> date du jour récupérée via la classe 'Calendar' de l'API
		date3 = new DATE(date2);		// test du contructeur de clonage
		
		out.println("\ndate2 = "+ date2);
		out.println("date3 = "+ date3);
		out.println("Ces deux dates " + ( date3.estEgal(date2) ? " sont " : " ne sont pas ") + " \u00e9gales !\n"); // test d'égalité profonde !

		out.println("L'ann\u00e9e " + date1.accesAnnee() + ( date1.estBissextile() ? " est " : " n'est pas ") + " bissextile !");
		out.println("L'ann\u00e9e " + date2.annee + ( date2.estBissextile() ? " est " : " n'est pas ") + " bissextile !");

		out.println("\n"+ date2 + ( date2.suit(date1) ? " suit " : " ne suit pas ") + date1 + "\n");
		out.println("\n"+ date2 + ( date2.suit(date3) ? " suit " : " ne suit pas ") + date3 + "\n");
		
		date3 = new DATE(1,1,1970);
		out.println("\nDuree entre 2 dates : "+ date2 + " =  " + date2.duree(date3) +"\n");
		out.println("\nJour de la semaine : "+ date3.jourSemaine() +"\n");
		out.println("\n"+ date3 + ( date3.estValide( ) ? " est " : " N'est PAS ") + " VALIDE !\n");
		date3 = new DATE(29,02,2007);
		out.println("\n"+ date3 + ( date3.estValide( ) ? " est " : " N'est PAS ") + " VALIDE !\n");
	}

}  // fin de la classe 'date_t'
