webForumDet fria alternativet

lägga till nytt värde till gammalt

Java

6 svar · 205 visningar · startad av tovelainen

Medlem sedan mars 2003137 inlägg
Frågan#1

Hallå
jag gör en program där en av metoderna ska hålla redan på övertid som ökas hela tiden.
Övertidstimmarna skickas till setOvertid.
De nya värdena vill jag ska läggas till de gamla.
Vid något tillfälle kommer slutsumman att anropas via getOvertid.
Hur många tal som ska läsas in och plussas till, kan va olika.
Nån som vet hur man gör?

void setOvertid(int over) {
o = over + over;
}

int getOvertid() {
return o;
}

Medlem sedan aug. 20021 752 inlägg
#2

Såhär kanske

public class Overtid
{
	private int overtid=0;

	public void setOvertid(int overtid)
	{
		this.overtid+=overtid;
	}

	public int getOvertid()
	{
		return(overtid);
	}
}

/Viktor

Medlem sedan mars 2003137 inlägg
#3

tack för svaret.
nej det tycks inte funka. Det blir hela tiden så att bara det senaste värdet finns kvar i overtid. om tex den senaste summan som skulle läggas till overtid är 15, så är det jag får ut 30. Dvs ständigt det dubbla av senaste värdet.
Fler förslag?

Medlem sedan aug. 20021 752 inlägg
#4

Lägg in koden som du anroppar klassen med.

/Viktor

Medlem sedan mars 2003137 inlägg
#5

Såhär ser den delen ut:
--------------------------------------------
public void beraknaLon(int timmar, int timlön,String namn) {
if (timmar + getFörraveckan() > 110){
System.out.println("xxx " + namn +
" har minst 30 timmars övertid de 2 senaste veckorna!");}

over = timmar - 40;
setOvertid(over);
n = (40 \* timlön) + (timmar - 40) \* (1.5)\*timlön;
System.out.println(namn + " har tjänat " + n + " kr under veckan ");

}

void setOvertid(int over) {
this.over+=over;
}

int getOvertid() {
return over;
}
--------------------------------------------

Medlem sedan aug. 20021 752 inlägg
#6
over = timmar - 40;

Här sätter du den globala variabeln over till timmar-40, sedan skickar du detta till funktionen setOvertid som sedan använder samma variabel för att spara tiden,

void setOvertid(int over) {
this.over+=over;
}

En bättre lösning vore något som detta,

[B]private int over=0;[/B]

public void beraknaLon(int timmar, int timlön,String namn)
{
	if (timmar + getFörraveckan() > 110)
	{
		System.out.println("xxx " + namn +" har minst 30 timmars övertid de 2 senaste veckorna!");
	}
	setOvertid(timmar - 40);
	n = (40 * timlön) + (timmar - 40) * (1.5)*timlön;
	System.out.println(namn + " har tjänat " + n + " kr under veckan ");
}

void setOvertid(int over)
{
   this.over+=over;
}

int getOvertid()
{
   return over;
}

/Viktor

Medlem sedan mars 2003137 inlägg
#7

suveränt!!
Super-mycket tack!
Funkar fint nu.
Hej hej från Tove

268 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)