Exercice : Appliquer la notion
Le calendrier révolutionnaire est créé pendant la Révolution française et utilisé jusqu'en 1806. Il comporte 12 mois que l'on peut à peu près convertir comme cela :
Vendémiaire (22 septembre ~ 21 octobre)
Brumaire (22 octobre ~ 21 novembre)
Frimaire (22 novembre ~ 21 décembre)
Nivôse (22 décembre ~ 20 janvier)
Pluviôse (21 janvier ~ 19 février)
Ventôse (20 février ~ 21 mars)
Germinal (22 mars ~ 19 avril)
Floréal (20 avril ~ 19 mai)
Prairial (20 mai ~ 18 juin)
Messidor (19 juin ~ 18 juillet)
Thermidor (19 juillet ~ 17 août)
Fructidor (18 août ~ 17 septembre)
Les jours situés entre Fructidor et Vendémiaire sont appelés les Jours supplémentaires.
Question
Réaliser le programme JavaScript qui permet d'afficher le mois dans le calendrier révolutionnaire correspondant à la date du jour.
Indice
Utiliser des structures conditionnelles if avec des opérateurs booléens && et || pour définir le bon mois en fonction du jour et du mois courant.
Indice
On peut récupérer le jour et le mois d'une date avec les méthodes getDay() et getMonth().
Indice
Supposons que le jour soit stocké dans la variable day et le mois dans la variable month. On pourra vérifier si cette date est comprise entre le 22 septembre et le 21 octobre avec la condition suivante :
// Septembre est représenté par 8 et non par 9(day >= 22 && month == 8) || (day <= 21 && month == 9)
Solution
Chaque numéro de mois correspond à un nom, en faisant attention au fait que la numérotation commence à 0 en JavaScript.
/** JavaScript */const today = new Date()
const day = today.getDate()
const month = today.getMonth()
let revolutionaryMonth
if((day >= 22 && month == 8) || (day <= 21 && month == 9)) {
revolutionaryMonth = 'Vendémiaire'
} else if((day >= 22 && month == 9) || (day <= 21 && month == 10)) {
revolutionaryMonth = 'Brumaire'
} else if((day >= 22 && month == 10) || (day <= 21 && month == 11)) {
revolutionaryMonth = 'Frimaire'
} else if((day >= 22 && month == 11) || (day <= 20 && month == 0)) {
revolutionaryMonth = 'Nivôse'
} else if((day >= 21 && month == 0) || (day <= 19 && month == 1)) {
revolutionaryMonth = 'Pluviôse'
} else if((day >= 20 && month == 1) || (day <= 21 && month == 2)) {
revolutionaryMonth = 'Ventôse'
} else if((day >= 22 && month == 2) || (day <= 19 && month == 3)) {
revolutionaryMonth = 'Germinal'
} else if((day >= 20 && month == 3) || (day <= 19 && month == 4)) {
revolutionaryMonth = 'Floréal'
} else if((day >= 20 && month == 4) || (day <= 18 && month == 5)) {
revolutionaryMonth = 'Plairial'
} else if((day >= 19 && month == 5) || (day <= 18 && month == 6)) {
revolutionaryMonth = 'Messidor'
} else if((day >= 19 && month == 6) || (day <= 17 && month == 7)) {
revolutionaryMonth = 'Thermidor'
} else if((day >= 18 && month == 7) || (day <= 17 && month == 8)) {
revolutionaryMonth = 'Fructidor'
} else {revolutionaryMonth = 'Jours supplémentaires'
}
console.log(revolutionaryMonth)