ArrayList übergibt die Werte nicht

z3rG

Mitglied
Hallo liebe Leute. Ich habe mich gerade etwas festgefahren und weiß nicht woran das liegt. Ich soll ein einfaches Programm bauen, welches die Arbeitszeiten berechnet.
Das tut es ganz gut eigentlich, bis auf den letzten Punkt der Ausgabe, indem er alle eingetragenen Zeiten ausgeben soll. Das tut er aber irgendwie nicht :/

Code 1
Java:
package de.worktimes.main;

public class Times {
	
	
	
	public String date;
	public int startTime;
	public int endTime;
	public int startPause;
	public int endPause;
	
	public int fullWork;
	
	
public Times (String date, int startTime, int endTime, int startPause, int endPause, double fullWork)

{
	
}


public String getDate() {
	return date;
}



public void setDate(String date) {
	this.date = date;
}





public int getStartTime() {
	return startTime;
}


public void setStartTime(int startTime) {
	this.startTime = startTime;
}


public int getEndTime() {
	return endTime;
}


public void setEndTime(int endTime) {
	this.endTime = endTime;
}


public int getStartPause() {
	return startPause;
}


public void setStartPause(int startPause) {
	this.startPause = startPause;
}


public int getEndPause() {
	return endPause;
}


public void setEndPause(int endPause) {
	this.endPause = endPause;
}


public int getFullWork() {
	return fullWork;
}


public void setFullWork(int fullWork) {
	this.fullWork = fullWork;
}
	
	
	

}

Und die Main
Java:
package de.worktimes.main;


import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	
		ArrayList<Times> list = new ArrayList<Times>();
		String sdate;
		String sstartTime;
		String sendTime;
		String spauseStart;
		String spauseEnd;
		double ifullWork;
		String check;
		String again;
		
		
		
		Scanner input = new Scanner(System.in);
		
		
		do
		{
		System.out.println("What do you want to do? Type in the requested topic.");
		System.out.println("1.Enter worktime");
		System.out.println("2.List all worktimes");
		check = input.next();
		
		if(check.equals("1"))
			
		{
		
		
		System.out.println("Enter the date: ");
		sdate = input.next();
		
		System.out.print("Enter the check-in time: ");
		sstartTime = input.next();
		
		System.out.println("Enter the check-out time");
		sendTime = input.next();
		
		System.out.println("Please enter the start of the Pause");
		spauseStart = input.next();
		
		System.out.println("Please enter the end of the pause: ");
		spauseEnd = input.next();
		
		
		
		String[] splitStartTime = sstartTime.split(":");
		
		int startHour = Integer.valueOf(splitStartTime[0]).intValue();
		int startMinute = Integer.valueOf(splitStartTime[1]).intValue();
		
		int istartTime = startHour * 60 + startMinute;
		
		
		
		String[] splitEndTime = sendTime.split(":");
		
		int endHour = Integer.valueOf(splitEndTime[0]).intValue();
		int endMinute = Integer.valueOf(splitEndTime[1]).intValue();
		
		int iendTime = endHour * 60 + endMinute;
		
		
		String[] splitPauseStart= spauseStart.split(":");
		
		int pauseStartHour = Integer.valueOf(splitPauseStart[0]).intValue();
		int pauseStartMinute = Integer.valueOf(splitPauseStart[1]).intValue();
		
		int ipauseStart = pauseStartHour * 60 + pauseStartMinute;
		
		
		
		String[] splitPauseEnd = spauseEnd.split(":");
		
		int pauseEndHour = Integer.valueOf(splitPauseEnd[0]).intValue();
		int pauseEndMinute = Integer.valueOf(splitPauseEnd[1]).intValue();
		
		int ipauseEnd = pauseEndHour * 60 + pauseEndMinute;
		
		
		
		if(iendTime <  istartTime)
		{
			 ifullWork = (( (24 * 60) +iendTime - istartTime) - (ipauseEnd - ipauseStart)) / 60;	
		}
		
		else
		{
			 ifullWork = ((iendTime - istartTime) - (ipauseEnd - ipauseStart)) / 60;
		}
		
		
		
		Times currentTime = new Times(sdate, istartTime, iendTime, ipauseStart, ipauseEnd, ifullWork);
		
		list.add(currentTime);
		
		
		
		System.out.println("You have worked on " + sdate + " " + ifullWork +"hours.");
		} 
		
		else if (check.equals("2"))
		{
			for 
			(int i=0; i < list.size(); i = i + 1)
			{
				System.out.println("Date: " + list.get(i).getDate()+""+
						"Checked in: " + list.get(i).getStartTime()+""+
						"Checked out: " + list.get(i).getEndTime()+""+
						"Pause started: " + list.get(i).getStartPause()+""+
						"Pause ended: " + list.get(i).getEndPause()+""+
						"Worked on this day: " + list.get(i).getFullWork()+"hours.");
				
			}
		}
		
		System.out.println("");
		System.out.println("Start again? (y/n)");
		again = input.next();
		
		}
		while(again.equals("y"));
		
		System.out.println("Thank yout for using the worktimes.");
		
	}
	
		
		
			
	
	}

Für eure Hilfe wäre ich sehr dankbar!
 
Java:
public Times (String date, int startTime, int endTime, int startPause, int endPause, double fullWork) 
{
    
}
Du machst hier mit den Werten nichts. Du musst die den Instanzvariablen zuweisen.
 
Dein Program funktioniert nicht richtig, solltest nochmal überprüfen was deine Liste dir ausgibt.

Bei manchen Sachen funktioniert auch die Rechnung der Pause für die Gesamtstundenanzahl nicht.

Bsp.:

What do you want to do? Type in the requested topic.
1.Enter worktime
2.List all worktimes
1
Enter the date:
03:07:2012
Enter the check-in time: 8:00
Enter the check-out time
16:30
Please enter the start of the Pause
12:00
Please enter the end of the pause:
12:30
You have worked on 03:07:2012 8.0hours.

Start again? (y/n)
y
What do you want to do? Type in the requested topic.
1.Enter worktime
2.List all worktimes
2
Date: 03:07:2012Checked in: 480Checked out: 990Pause started: 720Pause ended: 750Worked on this day: 0hours.


Siehe letzten code Abschnitt:

Date: 03:07:2012Checked in: 480Checked out: 990Pause started: 720Pause ended: 750Worked on this day: 0hours.
 
Danke, das war auch nur zur Überprüfung, ob die richtigen Werte weitergegeben werden. Ich splitte ja die Uhrzeit und rechne in Minuten. Dies habe ich jetzt anders gelöst, indem ich eine zweite Klasse für die Berechnung erstellt habe.
 

Zurück
Oben