rechnen mit Stunden und Minuten

Dodi.Hudori

Mitglied
und schon hab ich die nächste Aufgabe an der ich sitze (sollte ich das vielleicht alles in einem Thread schreiben?).

diesmal hab ich noch absolut keine Ahnung wie ich an die Sache rangehen soll :(

ich soll laut Aufgabe folgendes erstellen:

eine Klasse Time die Objekte erzeugen, addieren, vergleichen und ausgeben kann.

Die Klasse soll enthalten:
die Attribute: Stunden und Minuten (beide vom Typ int),
verschiedene Konstruktoren zum Erzeugen der Objekte durch Angabe der Stunden und Minuten, nur durch Minuten oder durch Angaben in der Form "hour:min",
die Methoden (overloading)

public Time add(int min),

public Time add(Time t), was bedeutet hier Time?

public Time sub(int min)

public Time sub(Time t)


zum Addieren und Subtrahieren von Zeiten, die Methode

public int compareTo(Time t)

zum Vergleichen von Zeiten ( -1 wenn die aktuelle Zeit vor der Vergleichszeit liegt, 0 bei gleichen Zeiten und sonst 1)

und die Methode

public String toString()

zur Ausgabe der Uhrzeit als String.

Testen Sie Time in main. Erzeugen Sie darin zufällige Time-Objekte und prüfen Sie daran die obigen Methoden.

hierzu hab ich mir erstmal folgendes Grundgerüst gebaut:

Java:
public class Time implements Comparable<Time>{
   private int h;      
   private int min; 
   private int sec;
   
   public Time add(int min) {
	return null;

   }
   public Time add(Time t) {
	return t;

   }
   public Time sub(int min) {
	return null;

   }
   
   public Time sub(Time t) {
	return t;

   }
   public int compareTo(Time t) {
	return h;

   }
   public String toString() {
	return null;

   }
   public static void main(String[] args) {

   }
}

klingt eigentlich nicht schwer, allerdings weiß ich absolut nicht wie ich da rangehen soll :( auch dieses Video: Java Programmieren Lernen #41 - Die Objekte für die Constructors erstellen - YouTube

hat mir nur begrenzt weitergeholfen.

Ich bin für jeden eurer Tips dankbar! :/
 
Zuletzt bearbeitet:

Pentalon

Bekanntes Mitglied
Time ist der Datentyp der eigenen Klasse.
Damit kannst Du einen Parameter vom Typ Time übergeben.

Mit
Java:
Time t1 = new Time(1, 30);
(nur mal so geraten, einen Konstruktor hast Du ja nicht gezeigt)
erstellst Du ja ein Objekt und dieses kannst Du dann mit:
Java:
Time t2 = new Time(t1);
übergeben.

Innerhalb der Methode kannst Du dann auf die privaten Felder
Java:
   private int h;      
   private int min; 
   private int sec;
zugreifen und damit rechnen.

Pentalon
 

Dodi.Hudori

Mitglied
also ich habe mich gerade mit mehreren Videos über Konstruktoren informiert und denke das ich das ganze nun etwas besser verstehe. Dem Konstruktor muss ich dann doch auch die h, min, und sec übergeben damit die Klasse Time damit rechnen kann oder?

edit: so ich hab mal einen kleinen Test geschrieben:

Java:
public class Time implements Comparable<Time>{
   private int h;      
   private int min; 

   
   public Time(int Stunden, int Minuten){
	   
	   h = Stunden;
	   min = Minuten;

	   
   }
   
   public Time add(int min) {


	return null;
	   
	     

   }
   
   public Time add(Time t) {
	return t;

   }
   
   public Time sub(int min) {
	return null;

   }
   
   public Time sub(Time t) {
	   
	return t;

   }
   
   public int compareTo(Time t) {
	return h;

   }
   
   public String toString() {
	return null;

   }
   
   public static void main(String[] args) {
	   
	   
	   Time t1 = new Time(6,12);
	   Time t2 = new Time(2,4);
	   
	   Time t3 = new Time(t1.h +t2.h, t1.min + t2.min);
	   
	   
	   System.out.println("alte Zeit " +t1.h+ " Stunden " +t1.min+ " Minuten" );
	   System.out.println("alte Zeit " +t2.h+ " Stunden " +t2.min+ " Minuten" );
	   System.out.println("neue Zeit " +t3.h+ " Stunden " +t3.min+ " Minuten" );
   }
}

ausgegeben wird:

Code:
alte Zeit 6 Stunden 12 Minuten
alte Zeit 2 Stunden 4 Minuten
neue Zeit 8 Stunden 16 Minuten

genial :) so langsam wirds, in der Main kann ich zwei Zeiten schonmal zusammenrechnen,
aber wie bekomm ichs nun hin das ganze nicht in der Main zusammenzurechnen sondern in der Time add?
 
Zuletzt bearbeitet:

Pentalon

Bekanntes Mitglied
Das schaut schon gut aus.
Gewöhne Dir gleich an die Namenskonventionen einzuhalten:
Variablen klein, Methoden klein z.b. addTime(), Klassen Gross z.B. Time().

der Konstruktor sollte dann so aussehen:

Java:
   public Time(int stunden, int minuten, int sekunden){
       
       this.h = stunden;
       this.min = minuten;
       this.sec = sekunden;
   }

Die Instanz von Time mit dem Namen t3 kannst Du nicht direkt ausdrucken, dazu machst Du Dir am Anfang einfach eine Methode anzeige().

Java:
public void anzeige() {
      
      system.out.println("Zeit= "+this.h+":"+this.min+":"+this.sec);
}

dann kannst Du mit
Java:
t3.anzeige();
die Zeit dieser Instanz anzeigen lassen.

Später überschreibt man zu diesem Zweck die Methode toString, aber für den Anfang reicht auch die Methode anzeige();

Pentalon
 

Dodi.Hudori

Mitglied
Hallo Pentalon,

wie du oben siehst habe ich den Konstruktor nun so "gebaut" (die Sekunden brauch ich doch nicht):

Java:
   public Time(int Stunden, int Minuten){
	   
	   h = Stunden;
	   min = Minuten;	   
   }

wenn ich das Video welches ich gerade geschaut habe richtig verstanden habe dient mir jetzt public Time add als zweiter konstruktor der nicht BEIDE werte fordert sondern auch nur mit dem Minuten wert umgehen kann, richtig?

das
Java:
this
habe ich bereits in meinen Unterlagen entdeckt, weiß allerdings nicht so recht was ich damit anfangen soll :/
 

Pentalon

Bekanntes Mitglied
Ja, Du kannst mehrere Konstruktoren haben, die mit unterschiedlichen Parametern die Instanz erzeugen können.

Mit THIS ist die jeweilige Instanz gemein, in der sich das Programm gerade befindet (current object).

Du kannst in der Methode auch eine Variable mit dem Namen h haben, dann würdest Du mit h=5 dieser Variable die 5 zuweisen. Mit this.h = 5 würdest Du der Instanzvariable die 5 zuweisen. Auch die Parameter der Methode können gleich heissen, wie die Namen der Instanfelder:

Java:
public Time(int h; int min) {
     this.h = h;
     this.min = min;
}

Lass Dich davon aber nicht verwirren, this ist einfach "dieses Objekt".

Pentalon
 

Dodi.Hudori

Mitglied
nun hab ich das mal umgebaut. Aber wie bekomm ich es jetzt hin das 2 Zeiten erzeugt werden und in der Public Time add oder Public Time sub berechnet werden?

Java:
public class Time implements Comparable<Time>{
   private int h;      
   private int min; 

   //Konstruktor Stunden und Minuten
   public Time(int h, int min){   
	   this.h = h;
	   this.min = min;   
   }
   
   //Konstruktor Minuten
   public Time(int min){   
	   this.min = min;   
   }
   
   public Time add(int h, int min) {
	   
	   
	return null;
   }
   
   public Time add(Time t) {
	   
	
	   
	return t;

   }
   
   public Time sub(int min) {
	   
	return null;

   }
   
   public Time sub(Time t) {
	   
	return t;

   }
   
   public int compareTo(Time t) {
	return h;

   }
   
   public String toString() {
	return null;

   }
   
   public static void main(String[] args) {
	   
	   
	   Time t1 = new Time(6,12);
	   Time t2 = new Time(2,4);
	   Time t4 = new Time(50);
	   
	   Time t3 = new Time(t1.h +t2.h, t1.min + t2.min);
	   
	   
	   System.out.println("alte Zeit " +t1.h+ " Stunden " +t1.min+ " Minuten" );
	   System.out.println("alte Zeit " +t2.h+ " Stunden " +t2.min+ " Minuten" );
	   System.out.println("neue Zeit " +t3.h+ " Stunden " +t3.min+ " Minuten" );


   }
}
 

Pentalon

Bekanntes Mitglied
Daraus solltest Du die sub Methode ableiten können:

Java:
	   public Time add(int h, int min) {
	       
	       int stunde = this.h;
	       int minute = this.min;
	       
	       minute = minute + min;
	       if (minute > 59) {
	    	   minute = minute -60;
	    	   stunde++;
	       }
	       
	       stunde = stunde + h;
		   
	    return new Time(stunde, minute);
	   }
	   
	   public Time add(Time t) {
	 
	    return this.add(t.h, t.min);          // Hier wird nur das ADD mit den beiden INT Parametern aufgerufen
	   }

Deine Zeiten hast Du in der Main ja eh schon erzeugt.
Java:
Time t1 = new Time(6,12);
Time t2 = new Time(2,4);

Time t3 = t1.add(t2);
Time t4 = t1.add(5,15);

Sollte eigendlich klappen. Nicht getestet.

Pentalon
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Stunden zusammen Rechnen Java Basics - Anfänger-Themen 4
C Rechnen mit Brüchen, ist meine Lösung soweit richtig? Java Basics - Anfänger-Themen 4
C Kann mir jemand sagen warum ich nicht mal rechnen kann ? Java Basics - Anfänger-Themen 32
Liroyd Methode mit Objektvariabel rechnen? Java Basics - Anfänger-Themen 6
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
Zeppi Geteilt rechnen Java Basics - Anfänger-Themen 2
D Mit Objekten rechnen, Textfield, JavaFX, Noob Java Basics - Anfänger-Themen 8
L Mit Zahlen im String rechnen Java Basics - Anfänger-Themen 19
L Datentypen Rechnen und abrunden mit double Java Basics - Anfänger-Themen 7
S Hamster Simulator rechnen lernen Parameter int Java Basics - Anfänger-Themen 6
D Operatoren Mit Objekten rechnen Java Basics - Anfänger-Themen 7
P Rechnen mit Brüchen - objektorientierte Programmierung Java Basics - Anfänger-Themen 18
S Rechnen mit MaxValue Java Basics - Anfänger-Themen 7
L Rechnen mit Objekten Java Basics - Anfänger-Themen 3
W Erste Schritte Rechnen mit Schleifen? Denkanstoß gesucht Java Basics - Anfänger-Themen 15
W Seltames Problem bei Rechnen mit BigIntegers Java Basics - Anfänger-Themen 2
A Rechnen mit Text und Zahl Java Basics - Anfänger-Themen 4
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
S Dezimalzahlen rechnen Java Basics - Anfänger-Themen 3
kilopack15 Rechnen mit großen Zahlen Java Basics - Anfänger-Themen 6
D Rechnen mit numerischen Datentyp Frage Java Basics - Anfänger-Themen 16
E Best Practice Exaktes Rechnen mit (Pseudo-)Rationalen/Realen Zahlen. Operations Zuweisung für (eigene) Klassen Java Basics - Anfänger-Themen 3
1 Mit Java Rechnen Java Basics - Anfänger-Themen 10
T Einstieg in "grafische Progammierung" + Rechnen in Flussdiagramm Java Basics - Anfänger-Themen 2
W Variablen float rundet beim Bruch rechnen Java Basics - Anfänger-Themen 3
N Oracle SQL mit Zwischenergebnis rechnen Java Basics - Anfänger-Themen 2
Y Variable Menge von Objekten erzeugen und mit ihren Attributen rechnen Java Basics - Anfänger-Themen 7
S Double mithilfe eines Scanners so einlesen, dass ich damit rechnen kann Java Basics - Anfänger-Themen 4
J Char-Rechnen Java Basics - Anfänger-Themen 8
A Rechnen mit Set/Get? Java Basics - Anfänger-Themen 2
Z Erste Schritte Instanzmethoden Rechnen (Bruch) Java Basics - Anfänger-Themen 18
M Mit Werten aus Arrays in anderen Methoden rechnen? Java Basics - Anfänger-Themen 3
J Mit Datum rechnen Java Basics - Anfänger-Themen 11
F Erste Schritte [GUI] Dual in Dezimal rechnen Java Basics - Anfänger-Themen 5
D Erste Schritte Rechnen mit Brüchen Java Basics - Anfänger-Themen 13
N mit Werten aus einer mysql datenbank in java rechnen Java Basics - Anfänger-Themen 17
G Rechnen mit Long Variablen Java Basics - Anfänger-Themen 4
N Probleme beim Rechnen mit Integer und double Java Basics - Anfänger-Themen 4
W Variablen Rechnen mit "char" Java Basics - Anfänger-Themen 2
Joew0815 Compiler-Fehler Unexpected Type - Problem mit Variablen rechnen Java Basics - Anfänger-Themen 7
F Werte aus Tabelle vergleichen/rechnen Java Basics - Anfänger-Themen 5
C Mit Potenzen rechnen "Problem" Java Basics - Anfänger-Themen 3
M Mit Array rechnen Java Basics - Anfänger-Themen 9
T Rechnen in Arrays Java Basics - Anfänger-Themen 11
B von Ergebniss weiter rechnen Java Basics - Anfänger-Themen 3
S Rechnen mit Datum bzw. Uhrzeit Java Basics - Anfänger-Themen 3
S Datentypen Operatoren und Ausdrücke (formel richtig rechnen) Java Basics - Anfänger-Themen 8
N Mit long rechnen Java Basics - Anfänger-Themen 2
K Übungsblatt 13 Aufgabe 6 (Rechnen) Java Basics - Anfänger-Themen 12
C Mit Gleitkommazahlen rechnen Java Basics - Anfänger-Themen 20
T Rechnen mit Operatoren Java Basics - Anfänger-Themen 2
W Mit (char) rechnen Java Basics - Anfänger-Themen 3
F Mit Arrays rechnen Java Basics - Anfänger-Themen 12
H Datentypen Rechnen mit signed Byte-Array - unsinged byte Java Basics - Anfänger-Themen 3
B mit benutzereingaben rechnen Java Basics - Anfänger-Themen 4
L Bruch rechnen Java Basics - Anfänger-Themen 29
B mit Datum rechnen Java Basics - Anfänger-Themen 10
D Rechnen mit int Array Java Basics - Anfänger-Themen 9
M mit Uhrzeit rechnen Java Basics - Anfänger-Themen 11
T mit Winkel & Sinus rechnen / sin(30°)=2,5 Java Basics - Anfänger-Themen 7
A Rechnen mit big integer Java Basics - Anfänger-Themen 29
L Mit matrizen rechnen Java Basics - Anfänger-Themen 19
W Probleme mit double rechnen Java Basics - Anfänger-Themen 4
J Datentypen Rechnen mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 3
K mit einer int rechnen Java Basics - Anfänger-Themen 10
M Warum -48 rechnen? Java Basics - Anfänger-Themen 3
K Java Code rechnen Java Basics - Anfänger-Themen 7
F Rechnen mit komplexen Zahlen Java Basics - Anfänger-Themen 23
C Datentypen Unklarheiten beim Rechnen Java Basics - Anfänger-Themen 5
W Modulo rechnen Java Basics - Anfänger-Themen 3
H Datentypen Rechnen und Runden Java Basics - Anfänger-Themen 2
S Rechnen mit Zeitangaben Java Basics - Anfänger-Themen 5
Binary.Coder Doppeltes Hashing verläuft in "Endlosscheife" beim rechnen per Hand Java Basics - Anfänger-Themen 8
F Mit Anzahl Startparametern rechnen Java Basics - Anfänger-Themen 17
T mit List<Integer> rechnen Java Basics - Anfänger-Themen 9
O einfaches rechnen mit zahlen Java Basics - Anfänger-Themen 4
T mit Typen Date rechnen Java Basics - Anfänger-Themen 6
S mit Werten aus 2D-Array rechnen Java Basics - Anfänger-Themen 32
J Anfänger-Problem: Rechnen mit Java Java Basics - Anfänger-Themen 3
J Mit Java exp Rechnen ? Java Basics - Anfänger-Themen 4
P Mit double und BigDecimal rechnen Java Basics - Anfänger-Themen 6
K Wie zerlege Ich einen String zum Rechnen? Java Basics - Anfänger-Themen 3
D Rechnen mit zwei Klassen Java Basics - Anfänger-Themen 19
J Mit Zeitzonen rechnen! Java Basics - Anfänger-Themen 3
G Float schneidet nach dem Rechnen auf eine Stelle ab Java Basics - Anfänger-Themen 9
L Eingeben Rechnen Ausgeben - Leider nicht so einfach Java Basics - Anfänger-Themen 31
G Mit tastatureingaben rechnen Java Basics - Anfänger-Themen 10
B Großer Java bug beim rechnen? Java Basics - Anfänger-Themen 66
S mit Strings rechnen Java Basics - Anfänger-Themen 16
D mit request.getParameter("x") rechnen Java Basics - Anfänger-Themen 3
T mit byte rechnen. ? Java Basics - Anfänger-Themen 8
MrTical Zahlen einlesen um damit zu rechnen Java Basics - Anfänger-Themen 5
Safado modulo rechnen Java Basics - Anfänger-Themen 5
F mit Dualzahlen rechnen Java Basics - Anfänger-Themen 5
J Rechnen mit Dualzahlen Java Basics - Anfänger-Themen 5
C Bedingtes Rechnen Java Basics - Anfänger-Themen 64
G mit Strings rechnen (Unicode) Java Basics - Anfänger-Themen 15
H Modulo rechnen Java Basics - Anfänger-Themen 17
T Rechnen Java Basics - Anfänger-Themen 3
G Taschenrechner.aber Rechnen bring ich nicht zam! Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben