Javakara

irischka.p

Mitglied
Hallo zusammen,

ich löse gerade Aufgabe mit Osterterminberechnung. Einfaches Berechnen für ein Jahr klappt, außer ich musste zwei mal Jahr definieren: in der Klasse und in der Methode.:( Jatzt muss ich die Berechnung für alle Jahre zwischen 2 eingegebenen Jahren durchführen. Habe mir dies durch die gleiche Methode vorgestellt. Allerdings gibt es wieder ein Problem mit Variablen - Jahr. Hättet Ihr evtl. ein Tipp für mich?

Java:
import javakara.JavaKaraProgram;
        


public class Aufgabenblatt4c 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;

    if (( 22 + D + E) <= 31)
    {
        Ostersonntag = (int) (22 + D + E);
        tools.showMessage ( " Ostersonntag ist : " + Ostersonntag + " März" + Jahr );
    }
    else 
        Ostersonntag = (int)  (D + E - 9);
        if (Ostersonntag == 26){
            tools.showMessage (" Ostersonntag ist 19. April" + Jahr);
        }
        if (Ostersonntag == 25 && A>10){
            tools.showMessage (" Ostersonntag ist 18. April" + Jahr);
        } 
        else
        tools.showMessage ( " Ostersonntag ist : " + Ostersonntag + " April" + 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:" );
   
      do {
      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);
      
      Jahr++;
      }
      while (Jahr < Jahr2); 
   }
 
Zuletzt bearbeitet von einem Moderator:

Final_Striker

Top Contributor
Du musst entweder die beiden jahr Variablen als Klassenattribute deklarieren oder der berechnen Methode das Jahr mitgeben. Wobei die zweite Variante meiner Meinung nach die bessere wäre

[c]public int berechneOstersontag(int jahr)[/c]

Noch was:
Variablen und Methoden fangen mit einem kleinen Buchstaben an, Klassen mit einem großen.
 
Zuletzt bearbeitet:

Landei

Top Contributor
Code wird mit [JAVA]-Tags erst schön!

Die do-while-Schlefen sind hässlich, wenn es keinen guten Grund dafür gibt, nimm for.
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben