Skip to main content

Java Übung 21 – Bestimme die Anzahl der Tage

In dieser Java Übung möchte ich, dass du eine Methode schreibst, welche zwei Zahlen entgegennimmt.
Und zwar soll die erste Zahl das Jahr sein.
Die zweite Zahl soll eine Monatsangabe (1-12) repräsentieren.

Was soll die Methode dann machen?
Die Methode soll dir die Anzahl der Tage des jeweiligen Monats zurückgeben.
Achte auf Schaltjahre.

Zum Beispiel:
Du übergibst der Methode beim Aufruf die Zahl 2016 für das Jahr.
Und du übergibst die Zahl 1 für den Monat Januar.

Die Methode liefert dann eine Bildschirmausgabe in welcher steht:
„Der Monat 1 im Jahr 2016 hat 31 Tage“.

Also dann los….

  • Erstelle eine Klasse „DatumEingabe“.
  • Implementiere die Methode „pruefeDatum“.
    Diese gibt eine Bildschirmanzeige mit der Anzahl der Tage zurück.
  • Rufe die Methode in der main-Methode der Klasse „DatumEingabe“ auf und übergib ihr zwei Parameter.

Im Grunde genommen gibt es zwei Lösungen zu dieser Java Übung

Die wohl eleganteste ist die Umsetzung mit dem switch case Statement.

Und so würde dies aussehen:


public class DatumEingabe {
	
	static void pruefeDatum(int monat, int jahr){
		int tage=0;
		switch (monat){
		case 1: 
		case 3: 
		case 5: 
		case 7: 
		case 8:
		case 10:
		case 12:tage=31;
		break;
		
		case 4:
		case 6:
		case 9:
		case 11: tage=30;
		break;

		case 2:
			if (jahr%4==0){
				tage=29;
			}
			else {
				tage=28;
			}
		break;	
		}
		System.out.println("Der "+monat+" Monat im jahr "+jahr+" hat "+tage+" tage");
	}
	
	public static void main(String[] args) {
		pruefeDatum(2,1904);
	}
}

Du möchtest, dass die Methode die Anzahl Tage ausgibt.

  • Es ist deshalb notwendig eine lokale Variable für die Anzahl der Tage anzulegen.
  • Dann kannst du die einzelnen Fälle über das switch case statement abfangen.
    Dazu switchst du das Argument Monat
  • Die Monate 1,3,5 usw. haben alle 31 Tage.
    Dann folgt die break-Anweisung da in diesem Moment die Methode aus dem switch-Block springen soll.
  • Das gleiche Prinzip kannst du für die Monate 4,6,9 und 11 umsetzen.
    Diese haben nämlich alle 30 Tage.

Dann haben wir noch den Monat 2. Also Februar.
Und dieser ist besonders. Denn alle 4 Jahre ist ein Schlatjahr.
Der Monat hat dann 28 Tage, anstatt 29.

Jetzt musst du das Jahr auswerten.
Wenn das Jahr durch vier teilbar (jahr%4==0) ist – Dann handelt es sich um ein Schaltjahr mit 29 Tagen.
Ansonsten ist es normales Jahr mit 28 Tagen.

Ich habe dir aber noch einen zweiten Lösungsweg versprochen.

Du kannst diese Java Übung auch mit einen Haufen if-Blöcken lösen.

Und so geht’s.


public class DatumEingabe {
	
	static void pruefeDatumIf(int monat, int jahr){
		int tage=0;
		if (monat== 1||monat==3||monat==5||monat==7||monat==8||monat==10||monat==12){
			tage=31;
		}
		else if (monat==4||monat==6||monat==9){
			tage=30;
		}
		else {
			if (jahr%4==0){
				tage=29;
			}
			else {
				tage=28;
			}
		}
		System.out.println("Der "+monat+" Monat im jahr "+jahr+" hat "+tage+" tage");
	}
	
	public static void main(String[] args) {
		pruefeDatumIf(2,2001);
	}
}

Die Methode benötigt ebenfalls eine lokale Variable um die Anzahl der Tage zu speichern.
Und dann wird die Bedingung im if-Block geprüft.
Hier werden die Monate mit 31 Tagen über ein „logisches Oder“ verknüpft.

Die Monate mit 30 Tagen werden über den else-if-Block abgefangen.
Auch hier sind alle möglichen Argumente über ein Oder verknüpft.

Und dann wird es etwas schwieriger.
Im else Block wird dann ein zusätzlicher if-Block implementiert.
Und dieser wertet das Jahr aus.

Falls das Jahr ein Schaltjahr ist (jahr%4==0), wird die Zahl 29 gespeichert.
Ansonsten ist ein kein Schaltjahr und es werden 28 Tage gespeichert.

Dies waren lediglich zwei Beispiele wie du dieses Problem lösen kannst.
Alternativ kannst du auch die Bildschirmausgaben in den if und else Blöcken direkt implementieren.

Bleibt zu sagen.
Auch bei dieser Java Übung gibt es jede Menge Möglichkeiten diese zu lösen. 🙂


Ähnliche Beiträge

So erstellst du deine ersten Java Klassen mit Eclipse

Java Klassen sind Baupläne für Java Objekte. Und da Java eine objektorientierte Programmiersprache ist, sind Java Klassen somit ein elementarer Bestandteil. In diesem Beitrag möchte ich dir zeigen, wie du eine Java Klasse in Eclipse erstellen kannst. Ich möchte dir außerdem zeigen, was physikalisch in deinem Projekt passiert. Ganz zum Schluss zeige ich dir noch, […]

So implementierst du Instanzmethoden in deine Java Klasse

Java Instanzmethoden

In einen der letzten Beiträge habe ich dir gezeigt, wie du eine Klasse anlegen kannst. Ich habe die Klasse „Mensch“ oder „Human“ angelegt und wir haben die erste Instanzvariable implementiert. Dein Code sollte jetzt so aussehen: public class Human { int size=156;//size in centimeter } In diesem Beitrag werde ich dir zeigen, wie du Java […]

So kannst du dein Java Programm mit der main Methode ausführen

Auf zum ersten Java Programm. Vielleicht fragst du dich jetzt gerade: Na, was haben wir denn bisher gemacht? War das etwa kein Java Programm? Wir haben bisher nur eine Klasse „Human“ für ein zuküntfiges Mensch-Objekt erstellt. Diesem Objekt haben wir eine Instanzvariable, namens size (Größe) zugeordnet. Und wir haben eine Instanzmethode, namens grow (wachsen) geschrieben. […]

Eine Java Konsoleneingabe machst du über den Scanner

Es wird Zeit für die erste Java Konsoleneingabe. Und diese Eingaben machst du über den Java Scanner. Was ist das? Der Scanner ist eine vorgefertigte Java Klasse, welche Java mit seiner API anbietet. Das heißt du musst nichts selbst erschaffen. Du musst nur wissen, wie du darauf zugreifst. Erst einmal musst du einen Scanner anlegen. […]

So unterstützen dich Java Vererbungstabellen beim Entwurf

Java Vererbungstabellen

Bei der Java Vererbung gibt es zwei Klassenarten bzw. -stufen. Die Superklassen, welche einen allgemeinen Typen darstellen Und die spezielleren Unterklassen, welche die Superklasse um bestimmte Funktionen erweitern. Jetzt ist dieses ganze „Der-erbt-von-dem-Konzept“ mitunter sehr schwierig darzustellen. Zum Beispiel in einem Werkzeugkoffer. In einem Werkzeugkoffer befinden sich sämtliche Werkzeuge, von Säge bis Bohrmaschine. Wie machst […]

Java lernen von Kopf bis Fuß

Wenn du Java lernen möchtest, kannst du an meinem kostenlosen Java Kurs teilnehmen. Aber manch Einer hätte gern eine zweite Meinung. Und da bieten sich natürlich Java Bücher an. Eines dieser Java Bücher möchte ich dir jetzt vorstellen. Dieses Buch nennt sich „Java von Kopf bis Fuß“. Was kannst du von diesem Buch erwarten? Also […]

Java Exklusives Oder – So nutzt du den Xor Operator

Java exklusives oder

In diesem Beitrag möchte ich dir den Xor Operator von Java vorstellen. Dieser Operator wird auch als ausschließendes oder exklusives Oder bezeichnet. Ein Beispiel: Was wilst du heute zum Mittag essen: Fleisch oder Fisch? Auf diese Frage gibt es nur eine Antwort. Es ist entweder Fisch oder Fleisch. Niemals beides. Das Eine schließt das andere […]

Java Duales Zahlensystem – Binäre Zahlen in Java umwandeln

Java Dual System

Das duale Zahlensystem hat viele Bezeichnungen. Oft wird auch es Dualsystem oder Binärsystem genannt. Es besteht aber immer aus 2 Zahlen. Man verwendet oft die Zahlen 0 und 1. Es können aber auch sämtliche anderen Zahlenpaare sein. Zum Beispiel 7 und 175 sind für sich genommen, auch ein normales Zahlenpaar und somit ein Dualsystem. Mit […]

So verwendest du den Java Oder Operator

Java Oder Operator

Kennst du das auch aus deiner Schulzeit? Du schreibst eine Klassenarbeit in irgendeinem Fach. Nehmen wir einfach mal an – Mathe. Jetzt bist gerade fertig mit deiner Arbeit. Und zu Hause wirst du gefragt: „Und wie lief es?“ Du antwortet:“ Ganz gut. Es wird bestimmt eine Eins oder eine Zwei.“ Drei oder vier Tage später […]

Java Objekte leben auf dem Heap

Java-Objekte-Heap

Java hat eine interne Speicherverwaltung. Eigentlich ist es nicht nur eine. Es sind mehrere.   Uns interessieren nur zwei. Methoden und lokale Variablen werden auf dem Stack verwaltet. Und die Speicherverwaltung für Java Objekte und den Instanzvariablen findet auf dem Heap statt.   Ja wieso braucht Java eigentlich zwei Speichersysteme?   Es ist ganz einfach. […]

So kannst du Java Arrays mit for Schleife füllen und auslesen

Java Arrays For Schleife

Wir haben in einem anderen Beitrag bereits über Java Arrays gesprochen. So ein Array speichert Zahlen, Texte oder Objekte in eine Art Liste. Und dann kannst du ganz bequem über den Index das Array füllen und die bereits enthaltenen Werte abrufen. Ganz bequem? So, wie ich dich aus dem letzten Beitrag entlassen habe, war das […]