if(jour==30) { 
jour=1; 
mois++; 
} else jour++; 
break; 
} 
case 2: { 
if( (annee%4==0) && ((annee%400==0) || (annee%100>0)) ) { 
if(jour==29) { 
jour=1; 
mois++; 
} else jour++; 
} else { 
if(jour==28) { 
jour=1; 
mois++; 
} else jour++; 
} 
break; 
} 
case 12: { 
if(jour==31) { 
jour=1; 
mois=1; 
annee++; 
} else jour++; 
} 
 
} 
System.out.println("Demain est le "+jour+ "/"+mois+ "/" +annee); 
} 
}
b. La validité d’une date 
Les  calculs  de  dates  sont  une  source  inépuisable  d’algorithmes.  Sauriez­vous  par  exemple  vous  inspirer  de 
l’algorithme ci­dessus pour tester la validité d’une date rentrée au clavier ? Il suffit pour chaque mois de vérifier si le 
jour entré est correct, le piège étant comme ci­dessus pour les années bissextiles et le mois de février. L’algorithme 
ci­dessous  introduit  une  nouveauté  :  la  présence  d’un  drapeau  (qu’on  appelle  flag  en  anglais)  ou  indicateur.  Le 
drapeau est une variable initialisée à une valeur prédéfinie au début du programme et dont la valeur est modifiée 
selon le résultat des tests. Après tous les tests, on vérifie la valeur du drapeau. A­t­elle changé ? Alors il y a eu un 
problème. Le drapeau est représenté par la variable "erreur". En fin de script, si elle contient autre chose que 0, alors 
la date est invalide. Sa valeur est modifiée à 1 lorsqu’un test n’est pas concluant. 
Variables erreur, annee, mois, jour en Numérique 
Début 
erreur←0 
Ecrire "Date initiale ?" 
Lire jour, mois, annee 
Si jour<0 OU mois<0 OU mois>12 Alors 
erreur←1 
Sinon Si Mois=1 OU mois=3 OU mois=5 OU mois=7 OU mois=8 OU mois=10  
ou mois=12 Alors 
Si jour>31 Alors 
erreur←1 
FinSi 
Sinon Si mois=4 OU mois=6 OU mois=9 OU mois=11 Alors 
Si jour>30 Alors 
erreur←1 
FinSi 
Sinon SI mois=2 Alors 
Si (annee%4=0) ET ((annee%400=0) OU (annee%100>0)) Alors 
Si jour>29 Alors 
erreur←1 
FinSi 
Sinon 
Si jour>28 Alors 
erreur←1 
- 11 -
© ENI Editions - All rigths reserved - Jonifar lina
57
Précédent

- 57/220

Suivant