public class DateTestEgalite {

/* Type agrege de stockage d'une date      */
/* formee d'un numero de jour, d'un numero */
/* de mois et d'un numero d'annee          */

  static class Date {
    int jour = 1;
    int mois = 1;
    int annee = 1901; };

/* Lecture au clavier et retour d'une date     */

  static Date saisirDate() {
    Date d = new Date();
    Ecran.afficher("Jour  ? ");
    d.jour = Clavier.saisirInt();
    Ecran.afficher("Mois  ? ");
    d.mois = Clavier.saisirInt();
    Ecran.afficher("Annee ? ");
    d.annee = Clavier.saisirInt();
    return d;
  }

/* Affichage d'une date au format jj/mm/aaaa   */
  
  static void afficher(Date d) {
    if ( d.jour < 10 ) {
      Ecran.afficher("0"); }
    Ecran.afficher(d.jour);
    Ecran.afficher("/");
    if ( d.mois < 10 ) {
      Ecran.afficher("0"); }
    Ecran.afficher(d.mois);
    Ecran.afficher("/");
    if ( d.annee < 10 ) {
      Ecran.afficher("0"); }
    if ( d.annee < 100 ) {
      Ecran.afficher("0"); }
    if ( d.annee < 1000 ) {
      Ecran.afficher("0"); }
    Ecran.afficher(d.annee);
  }

/////////////////////////////////////////////////

/* Test de l'egalite de deux Date              */

  static boolean testEgalite(Date d1,Date d2) {
    boolean res;
    if ( ( d1.jour == d2.jour ) &&
         ( d1.mois == d2.mois ) &&
         ( d1.annee == d2.annee ) ) {
      res = true; }
      else {
      res = false; }
    return res;
  }    

/////////////////////////////////////////////////

/* Programme principal                         */

  public static void main(String [] args) {
    Date d1;
    Date d2;
    boolean egalite;
    Ecran.afficherln("SVP, premiere date");
    d1 = saisirDate();
    Ecran.afficherln("SVP, deuxieme date");
    d2 = saisirDate();
    egalite = testEgalite(d1,d2);
    if ( egalite ) {
      Ecran.afficherln("Les deux dates sont les memes"); }
      else {
      Ecran.afficherln("Les deux dates sont differentes"); }
  }
}