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 kannst du Instanzen in Java Klassen zählen

Wie kannst du die Instanzen der Java Klassen zählen? Ganz einfach. Am besten ist es, wir bleiben beim Einführungsbeispiel zu den Java Klassen. Und ich wähle die Klasse „Monster“. Um es einfach zu halten, soll auch der Programmstart durch die Klasse erfolgen. Die Klasse bietet somit eine main-Methode an.

Über das kurze Leben einer lokalen Variablen

Java Variable lokal

Lass uns über die Lebensdauer einer lokalen Variablen sprechen. Warum ausgerechnet die Lebensdauer? Alle Java Variablen, unterscheiden sich in folgenden Punkten: wo diese deklariert werden können, wie du diese aufrufen kannst, welchen Bereich diese abdecken, und Ihre Lebensdauer Und eine lokale Java Variable hat eine relativ kurze Lebensdauer. Schauen wir uns zuerst Klassen- und Instanzvariablen […]

Lexikalik, Syntax und Semantik in Programmiersprachen

Programmiersprachen Semantik Programmiersprachen Syntax Programmiersprachen Lexikalik Java

Java ist eine Programmiersprache. Und wie jede andere Programmiersprache ist auch Java, lediglich eine künstliche Sprache.   Normalerweise bieten künstliche Projekte immer jede Menge Spielraum für Eigenkreationen. Bei der Programmierung ist dies nicht ganz so. Denn Programmiersprachen sind auch immer sehr exakt.   Jede Programmiersprache und auch jede gesprochene Sprache folgt immer einer Abstraktionsreihenfolge, welche […]

Java Vererbung:
Die 3 Schablonen für deine Java Objekte

Java Vererbung Beispiel

Im letzten Beitrag habe ich dir das Java Vererbung Konzept an einem Beispiel vorgestellt. In dem Beispiel-Rollenspiel gab es Klassen zu Helden und Superhelden. Ich habe dir die Vererbungshierarchien theoretisch erläutert. Jetzt geht es ans Praktische. In diesen Beitrag lernst du: Wie du bestehende Java Klassen erweiterst Wie du Objekte aus den erweiterten Klassen erstellen […]

Der wichtige Unterschied zwischen Java Methoden

Java Methoden Unterschied

Jetzt machen wir Nägel mit Köpfen. Dieses Sprichwort stammt aus den Anfängen des Industriezeitalters. Denn früher wurden Nägel nicht industriell, sondern per Hand gefertigt. Und da kam es schon einmal vor, dass versehentlich Nägel ohne Kopf produziert wurden. Was blieb ist das Sprichwort „Nägel mit Köpfen“ Und dieses steht sinngemäß für eine schnelle, qualitativ hochwertige […]

Nutze die Fernbedienung für deine Java Objekte

Auf Java Objekte greifst du mit einer Art Fernsteuerung zu. Diese bezeichnet man als Referenz oder als Verweis. Und diese Referenzvariablen möchte ich dir jetzt einmal vorstellen. Doch bevor wir loslegen, lass mich noch ein paar Dinge loswerden. 🙂 Ich habe es ja schon einmal in einem früheren Beitrag erwähnt. Java unterscheidet zwischen primitiven und […]