1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| import java.util.Scanner;
public class Paques {
private final static Scanner CLAVIER = new Scanner(System.in);
private static void main (String[] args) {
int annee = 0, paques = 0;
annee = demanderAnnee();
paques = datePaques(annee);
afficheDate(annee, paques);
}
//Demande à l'utilisation d'entrer une année
public static int demanderAnnee() {
int entier = 0;
do {
System.out.println("Entre une annee (1583-4000) : ");
entier = CLAVIER.nextInt();
} while (entier < 1583 || entier > 4000);
return entier;
}
// Calcul du jour de paque
public static int datePaques(int annee) {
int siecle = annee / 100;
int p = (13 + 8 * siecle) / 25;
int q = siecle / 4;
int m = (15 - p + siecle - q) % 30;
int n = (4 + siecle - q) % 7;
int d = (m + 19 * (annee % 19)) % 30;
int e = (2 * (annee % 4) + 4 * (annee % 7) + 6 * d + n) % 7;
int jour = e + d + 22;
if (e == 6 && ( d == 29 || (d == 28 && (11*(m+1) % 30) < 19))) {
jour -= 7;
}
return jour;
}
// Affiche la date et le mois de paque de l'année entrée
public static void afficheDate ( int annee, int jour) {
if (jour <= 31) {
System.out.print("Date de paques en " + annee + " : " + jour + " mars");
}
else if ( jour >= 32) {
jour -= 31;
System.out.print("Date de paques en " + annee + " : " + jour + " avril");
}
}
} |