WinFuture-Forum.de: Programm Für Die Ausrechnung Des Ostersonntags - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Programm Für Die Ausrechnung Des Ostersonntags Kann mir jemand helfen?


#1 Mitglied ist offline   lakebaron 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 27. November 08
  • Reputation: 0

geschrieben 28. November 2008 - 16:26

Hallo, alle zusammen!

Ich brauche ein Programm zu schreiben, das das Datum des Ostersonntags für ein beliebiges Jahr bestimmt.

Das Ausgabefenster soll folgender Maßen aussehen.
java Ostern 2009
Ostersonntag ist am 12.04.2009.
java Ostern 2043
Ostersonntag ist am 29.03.2043.
java Ostern 1543
Ungültige Eingabe!


Um das auszurechnen sind folgende Formeln erforderlich:
g=y mod19
c=y/100
h=(c-c/4-8*c+13/25+19*g+15) mod30
i=h-h/28(1-(29/h+1)*(21-g/11))
j=(y+y/4+i+2-c+c/4) mod7
l=i-j
m=3+(l+40/44)
d=l+28-31*(m/4)


wobei die Variablen d,m,y bzw. Tag, Monat und Jahr darstellen sollen. Dieses Methode wurde erst im Jahre 1582 erfunden, also früher hat es auch nicht existiert =)

Ich bin ehrlich gesagt ein Noob in Java und lerne es nur. Das Programm muss ich bald abgeben aber es gelingt mir nicht die verdammte Formeln richtig einzubringen.

Wäre sehr dankbar, wenn jemand mir dabei helfen kann dieses Problem zu lösen.

Grüß LakeBARON
0

Anzeige



#2 Mitglied ist offline   [Elite-|-Killer] 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 02. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Passau

geschrieben 28. November 2008 - 19:20

Zitat

public class Calendar {

public static void main(String[] args) throws Exception {

int year = Integer.parseInt(args[0]);
int day = 0;
int month = 0;
int g = 0;
int h = 0;
int j = 0;
double i = 0.0;
double l = 0.0;
double c = 0.0;
g = year % 19;
c = year / 100;
h = (int)((c - c / 4 - 8 * c + 13 / 25 + 19 * g + 15) % 30);
i = h - h / 28 * (1 - (29 / h + 1) * (21 - g / 11));
j = (int)((year + year / 4 + i + 2 - c + c / 4) % 7);
l = i - j;
month = (int)(3 + (l + 40 / 44));
day = (int)(l + 28 - 31 * (month / 4));
System.out.println(month + "/" + day);
}

}

Ist ungetestet. Sollte aber ungefähr stimmen, wenn ich mich beim Kopieren nicht dumm angestellt habe und die angegebene Formel richtig ist.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0