/* Manipulations sur une classe date          */

public class ManipulationDates {

/* Type agrege de stockage des informations   */
/* relatives a une date codee sous la forme   */
/* jour, mois, annee                          */

  static class Date {
    int j = 1;
    int m = 1;
    int a = 1901; };

/* Programme principal                        */

  public static void main(String [] args) {
    Date dt = new Date();
    int nbJours;
    Ecran.afficherln("SVP, j, m & a?");
    dt.j = Clavier.saisirInt();
    dt.m = Clavier.saisirInt();
    dt.a = Clavier.saisirInt();
    switch (dt.m) {
      case 2 :
        if ( ( (dt.a%400) == 0 ) || ( ( (dt.a%4) == 0 ) && ( (dt.a%100) != 0 ) ) ) {
          nbJours = 29; }
          else {
          nbJours = 28; }
        break;
      case 4  :
      case 6  :
      case 9  :
      case 11 :
        nbJours = 30;
        break;
      default :
        nbJours = 31;
        break; }
    dt.j = dt.j+1;
    if ( dt.j > nbJours ) {
      dt.j = 1;
      dt.m = dt.m+1;
      if ( dt.m > 12 ) {
        dt.m = 1;
        dt.a = dt.a+1; } }
    Ecran.afficherln(dt.j,"/",dt.m,"/",dt.a);
  }
}