Hallo zusammen. Ich muss ein Programm schreiben, dass Ostersonntage und Pfingstdatum für beliebiges Jahr berechnet. Alles schön und gut, allerdings bei weiteren Aufgaben, wie Berechnung für alle zwischenliegenden Jahren (Eingabe durch Benutzer für 2 versch. Jahre) scheitert es. Ich bringe es nicht fertig, dass in der Methode OstersonntagBerechnen Variable Jahr erkannt wird.
Habe im ersten Teil die Variable Jahr im public void() eingegeben und Methode ebenfalls, aber dies ist doppelt gemoppelt und es klappt nicht mit for-Schleife, weil das Jahr um 1 erhöht wird. Bitte um Hilfe.
public class Aufgabenblatt4cb extends JavaKaraProgram {
void OstersonntagBerechnen(int M, int N){
int A = Jahr%19;
int B = Jahr%4;
int C = Jahr%7;
double D = ( 19 * A + M) % 30;
double E = ( 2 * B + 4 * C + 6 * D + N) % 7;
int Ostersonntag;
int Pfingsten;
if (( 22 + D + E) <= 31)
{
Ostersonntag = (int) (22 + D + E);
Pfingsten = (int) (22 + 49 + D + E - 61);
tools.showMessage ( " Ostersonntag ist : " + Ostersonntag + " März" + Jahr );
tools.showMessage ( " Pfingsten fällt auf : " + Pfingsten + " Mai" + Jahr );
}
else
Ostersonntag = (int) (D + E - 9);
Pfingsten = (int) (D + E - 9 + 49 - 61);
if (Ostersonntag == 26){
tools.showMessage (" Ostersonntag ist 19. April" + Jahr);
tools.showMessage (" Pfingsten fällt auf 7.Juni" + Jahr);
}
if (Ostersonntag == 25 && A>10){
tools.showMessage (" Ostersonntag ist 18. April" + Jahr);
tools.showMessage (" Pfingsten fällt auf 6.Juni" + Jahr);
}
else
tools.showMessage ( " Ostersonntag ist : " + Ostersonntag + " April" + Jahr);
tools.showMessage ( " Pfingsten fällt auf : " + Pfingsten + " Juni" + Jahr);
}
}
public void myProgram() {
int Jahr = tools.intInput( "Geben Sie das erste Jahr für die Berechnung ein:" );
int Jahr2 = tools.intInput( "Geben Sie das zweite Jahr für die Berechnung ein:" );
for ( ; Jahr <= Jahr2; Jahr++){
if ( Jahr <= 1699 && Jahr >= 1583)
OstersonntagBerechnen(22, 2);
if ( Jahr <= 1799 && Jahr >= 1700)
OstersonntagBerechnen(23, 3);
if ( Jahr <= 1899 && Jahr >= 1800)
OstersonntagBerechnen(23, 4);
if ( Jahr <= 2099 && Jahr >= 1900)
OstersonntagBerechnen(24, 5);
if ( Jahr <= 2199 && Jahr >= 2100)
OstersonntagBerechnen(24, 6);
}
}

public class Aufgabenblatt4cb extends JavaKaraProgram {
void OstersonntagBerechnen(int M, int N){
int A = Jahr%19;
int B = Jahr%4;
int C = Jahr%7;
double D = ( 19 * A + M) % 30;
double E = ( 2 * B + 4 * C + 6 * D + N) % 7;
int Ostersonntag;
int Pfingsten;
if (( 22 + D + E) <= 31)
{
Ostersonntag = (int) (22 + D + E);
Pfingsten = (int) (22 + 49 + D + E - 61);
tools.showMessage ( " Ostersonntag ist : " + Ostersonntag + " März" + Jahr );
tools.showMessage ( " Pfingsten fällt auf : " + Pfingsten + " Mai" + Jahr );
}
else
Ostersonntag = (int) (D + E - 9);
Pfingsten = (int) (D + E - 9 + 49 - 61);
if (Ostersonntag == 26){
tools.showMessage (" Ostersonntag ist 19. April" + Jahr);
tools.showMessage (" Pfingsten fällt auf 7.Juni" + Jahr);
}
if (Ostersonntag == 25 && A>10){
tools.showMessage (" Ostersonntag ist 18. April" + Jahr);
tools.showMessage (" Pfingsten fällt auf 6.Juni" + Jahr);
}
else
tools.showMessage ( " Ostersonntag ist : " + Ostersonntag + " April" + Jahr);
tools.showMessage ( " Pfingsten fällt auf : " + Pfingsten + " Juni" + Jahr);
}
}
public void myProgram() {
int Jahr = tools.intInput( "Geben Sie das erste Jahr für die Berechnung ein:" );
int Jahr2 = tools.intInput( "Geben Sie das zweite Jahr für die Berechnung ein:" );
for ( ; Jahr <= Jahr2; Jahr++){
if ( Jahr <= 1699 && Jahr >= 1583)
OstersonntagBerechnen(22, 2);
if ( Jahr <= 1799 && Jahr >= 1700)
OstersonntagBerechnen(23, 3);
if ( Jahr <= 1899 && Jahr >= 1800)
OstersonntagBerechnen(23, 4);
if ( Jahr <= 2099 && Jahr >= 1900)
OstersonntagBerechnen(24, 5);
if ( Jahr <= 2199 && Jahr >= 2100)
OstersonntagBerechnen(24, 6);
}
}