overzetten seconden naar minuten en minuten naar uren na restdeling

Status
Niet open voor verdere reacties.

IgorJavaFan

Gebruiker
Lid geworden
8 jul 2009
Berichten
24
Hallo;

Ik heb een probleem waar ik nu al een week mee bezig ben en niet uitkom! Waardeloos dus.
Het gaat om het volgende:
In een klasse Tijdstip staan 3 velden, uren, minuten en seconden.
Op het moment dat er bv 70 seconden in t veld van de seconden worden ingevuld, moeten er bij de minuten 1 worden opgeteld en bij de seconden blijft de restwaarde in het veld staan.
Idem bij de minuten: als er bv 90 minuten in het veld van de minuten ingevuld worden, dan moet er 1 uur in het veld van de uren opgeteld worden en blijft de restwaarde (30) in het veld van de minuten staan.
Echter krijg ik met geen mogelijkheid het veld van de minuten en uren opgeteld.
De berekening moet volgens mij samen plaats hebben met de berekening van de restwaarde (seconden % 60) maar ik kom er niet uit. Heel frustrerend natuurlijk!!
Dit is de code tot nu toe:

public class Tijdstip {
private int seconden;
private int minuten;
private int uren;
private int seconden2;
private int minuten2;
private int uren2;

public Tijdstip(){
this.seconden = 0;
this.minuten = 0;
this.uren = 0;
}
public Tijdstip(int seconden, int minuten, int uren){
if(seconden > 0){
this.seconden = seconden;
}
else{
this.seconden = 0;
}
if(minuten > 0){
this.minuten = minuten;
}
else{
this.minuten = 0;
}
if(uren > 0){
this.uren = uren;
}
else{
this.uren = 0;
}
}
public void setSeconden(int seconden){;
this.seconden = seconden;
}
public void setMinuten(int minuten){
this.minuten = minuten;
}
public void setUren(int uren){
this.uren = uren;
}
public int getSeconden(){
int zonderMinuten = seconden % 60;
return zonderMinuten;
}
public int getMinuten(){
int zonderUren = minuten % 60;
return zonderUren;
}
public int getUren(){
return this.uren % 24;
}
public void addSeconden(int seconden2){
this.seconden = seconden + seconden2;
}
public void addMinuten(int minuten2){
this.minuten = minuten + minuten2;

}
public void addUren(int uren2){
this.uren = uren + uren2;
}

}
Is er iemand die voor mij het antwoord heeft??
Heel erg bedankt voor de hulp!
 
Waar loop je precies vast? In je code zie ik nergens iets staan wat hier iets mee doet, terwijl het wel klopt wat je zegt. Je kan gebruik maken van het feit dat het integers zijn. Aantal minuten = seconden / 60 en aantal seconden = seconden % 60. Zelfde voor de minuten en, mutatis mutandis, voor de uren.
 
overzetten seconden en minuten

Hoi, bedankt voor je reactie!

Ik heb problemen met het samenvoegen van de 2 berekeningen:
seconden / 60 en seconden % 60.
Deze 2 moeten, volgens mij, samen in deze methode komen, alleen krijg ik dus de 2 niet samenwerkend met elkaar.
public int getSeconden(){
int zonderMinuten = seconden % 60; ( en dan ook seconden / 60, waarna deze uitkomst gegeven moet worden aan de minuten)
return zonderMinuten;
}

begrijp je nu waarnaar ik op zoek ben??
 
overzetten seconden en minuten

Misschien wat duidelijker:

Er zijn 3 velden: uren, minuten en seconden.
bv 13:43:18

Als er bv in het seconden-veld 50 seconden worden toegevoegd, dan moet er in t veld van de minuten automatisch 1 minuut worden bijgeschreven (opgeteld) en in t seconden-vak blijven er dan 8 seconden staan.
Idem voor het uren-veld en het minuten-veld.
 
Waarom wil je dat in de get-methode doen? Dergelijke methodes zijn alleen bedoeld om het aantal seconden/minuten/uren op te vragen. Dat kan beter in de methodes die de waardes aanpassen, dan klopt je interne representatie ook.

Je kan gewoon
Code:
minuten = minuten + seconden/60;
seconden = seconden%60
gebruiken.
 
overzetten seconden en minuten

Ok,

Inderdaad logisch, maar:

Heb nu de volgende code gemaakt, maar doet nog niet wat hij doen moet.

public void setSeconden(int seconden){;
this.seconden = seconden % 60;
}
public void setMinuten(int minuten){
this.minuten = minuten % 60 + seconden / 60;
}
public void setUren(int uren){
this.uren = uren + minuten / 60;

De seconden worden niet bij de minuten opgeteld (ik krijg dus de seconden / 60 niet aan de praat) en de minuten worden ook niet opgeteld bij de uren.(de minuten / 60 werkt niet)
Haal ik de restberekening eruit, dan werkt het wel, alleen dan blijven de minuten bv op 61 staan, ipv 1. De restberekening moet dus ook toegevoegd worden.
Ik weet dat ik natuurlijk iets fout doe, maar............................?
 
overzetten seconden en minuten

Heb nu bv de restdelingen er uit gehaald en de minuten en seconden worden gewoon overgezet.
Alleen blijven er bv bij de seconden 70 staan en bij de minuten bv 62.
De rest berekening moet dus toegevoegd worden bij de seconden en bij de minuten.

public void setSeconden(int seconden){;
this.seconden = seconden;
}
public void setMinuten(int minuten){
this.minuten = minuten + seconden / 60;
}
public void setUren(int uren){
this.uren = uren + minuten / 60;
}
 
overzetten seconden en minuten

Hai;

Ben r achter:
Had de restdeling in de verkeerde methode gezet.
Had m, zoals je al liet zien, in de set methode voor de minuten en de uren moeten zetten.
Logisch ook, want bij t zetten van de restdeling in de seconden methode, wordt natuurlijk alleen maar de rest doorgegeven.
Opnieuw weer met m'n neus op de feiten gedrukt dat programmeren gewoon logica is. Je moet t alleen ff doorhebben he.
In ieder geval heel erg bedankt voor de hulp!!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan