Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo, ich habe folgenden Code, der auch meistens funktioniert, aber nicht immer.
Code:
import static Prog1Tools.IOTools.*;
public class Aufgabe5_14 {
public static void main (String[] args) {
int t=readInteger("Bitte geben Sie einen Tag ein: ");
int m=readInteger("Bitte geben Sie einen Monat ein: ");
int j=readInteger("Bitte geben Sie ein Jahr ein: ");
int c;
int y;
int h;
String wochentag="";
if (m<=2) {
m=m+10;
j=j-1;
}
else
{
m=m-2;
}
c=j/100;
y=j%100;
h=(((26*m-2)/10)+t+y+y/4+c/4-2*c)%7;
if (h<0) {
h=h+7;
}
switch (h) {
case 0: wochentag="Sonntag"; break;
case 1: wochentag="Montag"; break;
case 2: wochentag="Dienstag"; break;
case 3: wochentag="Mittwoch"; break;
case 4: wochentag="Donnerstag"; break;
case 5: wochentag="Freitag"; break;
case 6: wochentag="Samstag"; break;
}
System.out.println("Der "+t+"."+m+"."+j+" ist ein "+wochentag+".");
}
}
Bei der Ausgabe wird manchmal von m zwei abgezogen und somit falsch angezeigt. Ich weiß aber nicht woran das liegt, vor allem weil es ja manchmal funktioniert.
Würde mich freuen wenn mir jemand helfen könnte.
Liebe Grüße
Hab es mit 24.12.2001 ausprobiert, angezeigt wird 24.10.2001
Ja das weiß ich und ich hab auch diesen Lösungscode:
Code:
import Prog1Tools.IOTools;
public class Wochentag {
public static void main (String[] args) {
int t, m, j, c, y, h;
t = IOTools.readInteger ("Tag = " );
m = IOTools.readInteger ("Monat = ");
j = IOTools.readInteger ("Jahr = " );
System.out.print("Der " + t + "." + m + "." + j + " ist ein ");
if (m <= 2)
{
m = m + 10;
j = j - 1;
}
else
m = m - 2;
c = j/100;
y = j%100;
h = (((26*m - 2)/10) + t + y + y/4 + c/4 - 2*c) % 7;
if (h < 0)
h = h + 7;
if (h == 0)
System.out.println("Sonntag.");
else if (h == 1)
System.out.println("Montag.");
else if (h == 2)
System.out.println("Dienstag.");
else if (h == 3)
System.out.println("Mittwoch.");
else if (h == 4)
System.out.println("Donnerstag.");
else if (h == 5)
System.out.println("Freitag.");
else
System.out.println("Samstag.");
}
}
Das ist doch fast der gleiche Code, warum funktioniert aber dieser?
Weil der Ausgabe ihr erster Teil weiter oben steht Auch hier ist m später m-2, welches in der späteren (mir gerade aus Interesse- und Zeitgründen nicht auf Korrektheit überprüfbare) Berechnung verwendet werden muss.