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

Java Konsolenausgaben mit formatierten Zahlen

Java Konsolenausgaben Zahlen

Java Konsolenausgaben erzeugst du mit der System.out.println()-Anweisung. Dies ist relativ einfach. Aber es ist mitunter nicht ganz praktisch. Und zwar immer dann, wenn Zahlen im Spiel sind. Die Zahlen welche dann auf deiner Java Konsole erscheinen, sind unformatiert. Sie haben zu viele Kommastellen. Oder für eine bessere Darstellung benötigst du den Tausenderpunkt. Vielleicht möchtest du […]

Java Vererbung – Die Hierarchien richtig planen

Java Vererbung Hierarchien

Java Vererbung hat nichts mit Biologie zu tun. Die Genetik besagt, dass bestimmte Merkmalsausprägungen von den Eltern auf die Kinder übergehen. Solche Merkmalsausprägungen sind: die Hautfarbe die Haarfarbe die spezifische Größe und weitere körperliche Merkmale. Und in Java – was ist da Vererbung? Lass es uns herausfinden. Was erwartet dich in diesem Beitrag? Zuerst schauen […]

So kannst du Java Konstruktoren anlegen und überladen

Java Konstruktoren

Der Name sagt es schon. Java Konstruktoren konstruieren oder bauen Java Objekte. Und diese Objekte baut der Konstruktor auf Vorlage der entsprechenden Java Klasse. In diesem Beitrag zeige ich dir natürlich verschiedene Ansätze wie du den Konstruktor einsetzt. Ich zeige dir dies Schritt für Schritt. Dabei zeige ich dir auch verschiedene Dinge, welche nicht funktionieren. […]

So kannst du Java Konstanten bei der Programmierung nutzen

Java Konstanten – was kann man sich darunter vorstellen? Du kennst Konstanten in der Mathematik. Die Kreiszahl Pi ist so eine konstante Zahl. Diese Zahl ändert sich niemals. Sie beträgt immer rund 3,141592. In der Physik gelten die Lichtgeschwindigkeit, der Erdradius oder der absolute Nullpunkt als konstant. Selbst die Geschwindigkeit mit der sich die Erde […]

So kannst du zweidimensionale Java Arrays anlegen und nutzen

Java Arrays zweidimensional

Eines der bedeutendsten Instrumente in der Mathematik ist das Koordinatensystem. Die gedankliche Grundlage dieses Werkzeuges lieferte der französische Naturwissenschaftler und Philosoph Rene Descartes. Man muss sich einmal verdeutlichen, was dies für die damalige Zeit bedeutete. Bisher wurden mathematische Probleme lediglich durch Berechnungen gelöst. Denke an geometrische Figuren, wie Dreiecke und Vierecke. Der Umfang wurde lediglich […]

So kannst du Java Methoden überladen

Java Methoden überladen

Im Mittelalter war es üblich, dass Könige oder Adlige Briefe durch ein Siegel verschlossen. Das Siegel hatte die Aufgabe den Inhalt des Briefes vor dem gewaltsamen Öffnen zu schützen. Außerdem hatte das Siegel die Aufgabe einen Eigentumsnachweis sicher zu stellen. Und jeder, welcher das Siegel des Königs sah, wusste: „Das königliche Siegel – Oh ein […]

Java Binärzahl in Dezimalzahl umwandeln – So geht’s.

Java-Binärzahl-umrechnen

Erinnerst du dich? In einer der letzten Beiträge haben wir uns die Zusammenhänge zwischen dem dualen und dem dezimalen Zahlensystem angeschaut. Aber wir haben noch keine Java Binärzahl in eine Dezimalzahl verwandelt. Zumindestens nicht praktisch…. Stattdessen…. Haben wir festgestellt, dass beide Zahlensysteme im Grunde genommen sehr ähnlich sind. Beim Dezimalsystem spielt die Zahl 10, als […]

So verwendest du die Java Codeblöcke zur Automatisierung

Java Codeblöcke

In diesem Beitrag geht es um den Einsatz von Java Codeblöcken oder Initialisierungsblöcken. Viele Wege führen nach Rom. Oder Alle Wege führen nach Rom. Heißt es in einem alten Sprichwort. Und so ähnlich ist es bei der Java Programmierung. In diesem Beitrag möchte ich dir einen weiteren Weg vorstellen, wie du Variablen eines Java Objektes […]

Java For Each Schleife – Aufbau und Funktionsweise

Java for each Schleife

In einer anderen Lektion habe ich dir bereits gezeigt, wie du ein Java Array mit einer for-Schleife füllen und dir später die Werte zurückgeben lassen kannst. Es gibt allerdings einen weiteren Schleifentyp, welche geradezu prädestiniert ist für Java Arrays. Dieser Schleifentyp nennt sich for each Schleife. In diesem Beitrag möchte ich dir zeigen, wie du […]