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.
aba monat ist die variable die vorher vom benutzer eingegeben wurde.. und wenn er 2 gedrückt hat, soll hat geschaut werden ob das jahr ( was davor eingegeben wurde ) ein schaltjahr ist oda net .. und deswegen die berechnungen ^^
public class Kalendar
{
public static void main(String[] args)
{
TextIO.putln("Geben Sie bitte ein Jahr an, dass groeßer ist als 1582:");
int jahr = TextIO.getInt();
if (jahr<1583) {
TextIO.putln("Ihr eingegebenes Jahr ist nicht im Wertebereich!!!");
System.exit(0);
} else {
TextIO.putln("Geben Sie nun bitte den Monat an:");
}
/*Man könnte das Problem auch mit einer while Schleife lösen:
*
* while (jahr<1582) {TextIO.putln("Dies ist eine falsche Jahresgröße. Bitte geben Sie eine neue ein.");
jahr = TextIO.getInt(); }
TextIO.putln("Geben Sie nun bitte den Monat an:"); */
TextIO.putln("Januar=1 Februar=2");
TextIO.putln("Maerz=3 April=4");
TextIO.putln("Mai=5 Juni=6");
TextIO.putln("Juli=7 August=8");
TextIO.putln("September=9 Oktober=10");
TextIO.putln("November=11 Dezember=12");
int monat = TextIO.getInt();
if (monat!=1 && monat!=2 && monat!=3 && monat!=4 && monat!=5 && monat!=6 && monat!=7 && monat!=8 && monat!=9 && monat!=10 && monat!=11 && monat!=12)
{ TextIO.putln("Dies ist eine falsche Monatsgröße.");
System.exit(0);
} else
switch (monat) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
monat=31; break;
case 4:
case 6:
case 9:
case 11:
monat=30; break;
case 2:
monat=if(jahr%4!=0 || jahr%4==0 && jahr%100!=0) TextIO.putln("28");
else (jahr%4==0 || jahr%400==0) TextIO.putln("29"); break;
} TextIO.putln("Der Monat hat " + monat + " Tage.");
}
}
Das Programm soll erst nach dem jahr , dann nach dem monat fragen und asugeben, wie viele tage dieser monat hat. bei februar ist es ja komplizierter, da der februar alle paar jahre wieda ein schaltjahr ist, deswegen diese if-abfrage. nur weiss ich net wie ich das dort an der stelle einbauen kann. unter case2 monat=if ... funtzt halt net ^^
Bestimme vorher, ob das Jahr ein Schaltjahr ist, speicher das Ergebnis in ein boolean und dann machs so:
Code:
monat = dieBooleanVariable ? 29 : 28;
Das ganze jetzt ausm Kopf, ohne geprüft zu haben, obs funktioniert....
Edit: Natürlich kann man anstatt der booleanVariablen auch den Ausdruck schreiben, den du vorher im if stehe hattest oder man könnte es auch mit if und else machen und im Ausführungsblock monat den richtigen Wert zuweisen, aber sowas in der Art "monat = if() {}" is nicht gut....