

public class CheckDate {

	public static void main(String[] args) {

		// Einlesen von Tag, Monat und Jahr als 3 Integers

		Out.print("Tag : ");
		int day = In.readInt();

		Out.print("Monat: ");
		int month = In.readInt();

		Out.print("Jahr: ");
		int year = In.readInt();

		Out.println();
		Out.println("Datum = " + day + ". " + month + ". " + year);
		Out.println();

		// Checken

		if (year > 2008 || year <= 1868) {

			Out.println("Fehler im Jahr: Jahr muss zwischen 1868 und 2008 liegen!");

		} else if (month < 1 || month > 12) {

			Out.println("Fehler im Monat: Monat muss zwischen 1 und 12 liegen!");

		} else if (day < 1 || day > 31) {

			Out.println("Fehler im Tag; Tag muss zwischen 1 und 31 liegen!");

		} else if ((year == 2008 && month > 10)
					|| (year == 2008 && month == 10 && day > 22) {  // Prüfen ob Datum in Zukunft

			Out.println("Datum ist in der Zukunft");

		} else if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {

			Out.println("Monat " + month + " hat nur 30 Tage");

		} else if (month == 2 && (day == 30 || day == 31)) {

			Out.println("Februar hat keinen Tag " + day);

		} else if (month == 2 && day == 29) {

			// 4 | year ausser 100 | year  ausser 400 | year
			if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {

				Out.println("Gülitges Datum!");

			} else {

				Out.println("Tag ist 29. 2.; Jahr ist aber kein Schaltjahr");

			}

		} else {

			Out.println("Gülitges Datum!");

		}
	}

}
