public class DateAffectationEnConsole {

/* 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();
    Console.afficher("Jour  ? ");
    d.jour = Console.saisirInt();
    Console.afficher("Mois  ? ");
    d.mois = Console.saisirInt();
    Console.afficher("Annee ? ");
    d.annee = Console.saisirInt();
    return d;
  }

/* Affichage d'une date au format jj/mm/aaaa   */

  static void afficher(Date d) {
    if ( d.jour < 10 ) {
      Console.afficher("0"); }
    Console.afficher(d.jour);
    Console.afficher("/");
    if ( d.mois < 10 ) {
      Console.afficher("0"); }
    Console.afficher(d.mois);
    Console.afficher("/");
    if ( d.annee < 10 ) {
      Console.afficher("0"); }
    if ( d.annee < 100 ) {
      Console.afficher("0"); }
    if ( d.annee < 1000 ) {
      Console.afficher("0"); }
    Console.afficher(d.annee);
  }

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

/* Affectation de la Date cible                */
/* avec les valeurs stockees dans les champs   */
/* de la date source                           */

  static void affectation(Date cible,Date source) {
    cible.annee = source.annee;
    cible.mois = source.mois;
    cible.jour = source.jour;
  }

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

/* Programme principal                         */

  public static void main(String [] args) {
    Console.setTitle("DateAffectation");
    Date d1;
    Date d2 = new Date();
    Console.afficherln("Veuillez saisir votre date");
    d1 = saisirDate();
    affectation(d2,d1);
    Console.afficher("La date saisie est: ");
    afficher(d1);
    Console.sautDeLigne();
    Console.afficher("La date copiee est: ");
    afficher(d2);
    Console.sautDeLigne();
  }
}