private static final int MIN_YEAR=1900, MAX_YEAR=2099;
public static String easterGauss(int y) {
if(y<MIN_YEAR || y>MAX_YEAR)
throw new IllegalArgumentException(
y+" not in ["+MIN_YEAR+", "+MAX_YEAR+"]");
int a=y%19, b=y%4, c=y%7, d=(19*a+24)%30, e=(2*b+4*c+6*d+5)%7,
h=22+d+e;
if(e==6 && d==29) //1. kivétel
h=50;
if(e==6 && d==28 && a>10) //2. kivétel
h=49;
String message="Húsvétvasárnap "+y+" évben: ";
if(h<=31) //március
message+="március "+h+".";
else //április
message+="április "+(h-31)+".";
return message;
}
public static void main(String[] args) {
System.out.println("Mikor van húsvétvasárnap az alábbi években?");
int startYear=
Math.max(MIN_YEAR, Calendar.getInstance().get(Calendar.YEAR));
int endYear=Math.min(startYear+19, MAX_YEAR);
for (int y=startYear; y<=endYear; y++)
System.out.println(easterGauss(y));
}