Den übernächsten Eintrag in der Liste vergleichen und zusammen fassen

RedZeroX2

Mitglied
Hallo,
ich habe folgendes problem: Ich habe eine .log Datei (speichert logins und logouts) die ich bereits ausgelesen habe und in einer liste festhalte (Datumswerte). Nun kommt das knifflige ,da man sich am Tag mehrmals ein und aus logt wiederholt sich ein datum ich brauche aber die gesamte stunden zahl des tages. Ich habe schon einige abfragen gemacht und bin am ende mit meinen Ideen entweder speichert der zuviele in stunden ins array oder garnicht ich weiß net weiter.
Ich danke schon mal:
hier ist der java code:
Java:
public class LogRead {

	public static void reader(String[] args) throws IOException {
		int i = 0;
		// DateTime dt = new DateTime();
		DateFormat formatter, onlyDateFormatter;
		formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
		onlyDateFormatter = new SimpleDateFormat("yyyy-MM-dd");

		Date dateWithTime = new Date();
		Date onlyDate = new Date();

		List<Calendar> liste = new ArrayList<Calendar>();
		List<Calendar> liste2 = new ArrayList<Calendar>();

		FileReader fr = new FileReader("./src/de/flaviait/zfg/Michael.log");
		BufferedReader br = new BufferedReader(fr);

		String zeile = "";
		float[] array = new float[200];
		float[] ergebnissArray = new float[200];
		int[] sammelArray = new int[200];

		while ((zeile = br.readLine()) != null) {

			

			try {
				dateWithTime = (Date) formatter.parse(zeile.substring(0, 16));
			} catch (ParseException e) {

				e.printStackTrace();
			}
			try {
				onlyDate = (Date) onlyDateFormatter.parse(zeile
						.substring(0, 11));
			} catch (ParseException e) {

				e.printStackTrace();
			}

			Calendar cal = Calendar.getInstance();
			Calendar cal2 = Calendar.getInstance();
			cal.setTime(dateWithTime);
			cal2.setTime(onlyDate);

			liste.add(cal);
			liste2.add(cal2);
		}

		

		int b = 0;
		float gesammt = 0;
		long milis1 = 0, milis2 = 0;
		long dif1 = 0;
		long difminutes = 0;

		for (i = 0; i < liste2.size() - 1; i = i + 2) {

			milis1 = liste.get(i).getTimeInMillis();

			milis2 = liste.get(i + 1).getTimeInMillis();

			dif1 = milis2 - milis1;

			difminutes = dif1 / (60 * 1000);
			array[b] = difminutes;

			gesammt = gesammt + difminutes;
			b = b + 1;

		}


		for (int c = 0; c < 20; c++) {

			System.out.println((array[c] / 60) + " c:" + c);
		}

		System.out.println("Gesamte Stunden " + gesammt / 60);
		br.close();
	}
}
 

RedZeroX2

Mitglied
PS: die .log Datei

2009-10-31 09:30 NB0013 login
2009-10-31 15:00 NB0013 logout
2009-10-31 16:30 NB0013 login
2009-10-31 19:00 NB0013 logout
2009-11-01 09:30 NB0013 login
2009-11-01 18:00 NB0013 logout
2009-11-02 09:30 NB0013 login
2009-11-02 16:30 NB0013 logout
2009-11-02 17:00 NB0013 login
2009-11-02 18:00 NB0013 logout
2009-11-03 06:30 NB0013 login
2009-11-03 16:00 NB0013 logout
2009-11-31 09:30 NB0013 login
2009-11-31 15:00 NB0013 logout
 
S

SlaterB

Gast
man kann vielleicht versuchen, aus deinem bisherigen Code etwas abzuleiten, aber sag doch nochmal ganz deutlich worum es geht,
anscheinend um Zeitdifferenzen

aus
2009-10-31 09:30 NB0013 login
2009-10-31 15:00 NB0013 logout
sollen 5:30 ausgerechnet werden?

wo ganz exakt hast du dabei welches Problem,
beim Übergang von einem Tag aufs den nächsten?


-----
allgemein als Tipp wäre es schöner ein wirklich lauffähiges Programm zu posten,
verzichte auf die Datei, lege die 10 Zeilen testweise als String-Array oder -Liste ab,
dann könnte es jeder sofort ausprobieren (so nur nach 5 Min. Aufwand..)
 

delphiking1980

Bekanntes Mitglied
Ich würde das mit einer Klasse Benutzer lösen :

private long loginTimestamp;
private long logoutTimestamp;

private int hours;
private int minutes;
private int seconds;

und dann einfach für jeden Benutzer ein Objekt anlegen damit kannst du dann eine Liste erstellen :

ArrayList<Benutzer> benutzerList = new ArrayList<Benutzer>();

und die Liste darüber auswerten.
 

RedZeroX2

Mitglied
die wird schon errechnet aus :

2009-10-31 09:30 NB0013 login
2009-10-31 15:00 NB0013 logout

möchte aber gern das dazu auch die

2009-10-31 16:30 NB0013 login
2009-10-31 19:00 NB0013 logout

differenz addiert wird usw..
lg
 

RedZeroX2

Mitglied
Das hab ich Anfangs auch gedacht aber wenn man das macht sind zwischen den beiden 1.5 stunden luft und die werden dann einfach dazu addiert und man hat somit keine genau Stunden zahl mehr.
 

RedZeroX2

Mitglied
@SlaterB
Danke für den Tip.
Den übergang macht es ja schon es soll einfach die ergebnisse zu dem dazugehörigen tag addieren.
so das dann 5.5+2.5 also das vom nächsten login/logout addiert.
 

nrg

Top Contributor
ich würde eine Klasse User (ich nehme mal an NB0013 ist der User) mit den Attributen name und eine Liste mit Objekte von Session machen. Die Klasse Session enthält dann die Attribute login und logout vom Typ Date. Diese parst du einfach mit SimpleDateFormatter rein und kannst so ganz einfach eine Methode getSessionTime schreiben, die die Sessionzeit in MS zurückgibt (Quotient aus getTime() der Dateojekte). In deiner Klasse User kannste dann ebenfalls eine Methode getSessionTime machen, die einfach über die Liste iteriert und getSessionTime der Sessions addiert.
 

RedZeroX2

Mitglied
Danke für die Tipps habs gelöst aber auf anderem wege. Es sollte ja die Stunden zusammen zählen wenn die tage gleich sind. Habe dann einfach erst die logins und logout verglichen und dann die werte subtrahiert anschließend mit einer äusseren schleife prüfen lassen ob die datumswerte doppelt vorkommen wenn ja die stunden zahlen die dazugehörten addiert evlt bischen umständlich aber es geht.
Noch mals danke für die zahlreichen antworten :-D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
J ArrayList auf bereits vorhanden eintrag prüfen Java Basics - Anfänger-Themen 5
J Array eintrag mit möglichst wenig code lösen Java Basics - Anfänger-Themen 16
C Array-Eintrag wieder auf Null setzen Java Basics - Anfänger-Themen 3
M JComboBox ersten Eintrag leerlassen bzw. Platzhalter Java Basics - Anfänger-Themen 1
A Größten Eintrag aus Binärbaum löschen Java Basics - Anfänger-Themen 4
S Array Eintrag ändern Java Basics - Anfänger-Themen 6
Q-bert MYSQL-Eintrag Java Basics - Anfänger-Themen 2
V String Array gegen null-Eintrag sichern Java Basics - Anfänger-Themen 11
X XML-Eintrag an Attribute erkennen Java Basics - Anfänger-Themen 2
thobren arraylist es wird nur der letzte Eintrag angezeigt Java Basics - Anfänger-Themen 2
D javac kann trotz PATH-Eintrag nicht gefunden werden (Hello World) Java Basics - Anfänger-Themen 10
T Liste mit 2 Werten pro Eintrag Java Basics - Anfänger-Themen 9
S Einen Eintrag im Array löschen? Java Basics - Anfänger-Themen 11
B Variablen Android: Spinner-Eintrag einen versteckten numerischen Wert zuordnen und Variable übergeben Java Basics - Anfänger-Themen 3
M ArrayList || Bei Ausgabe nach jedem 10. Eintrag Zeilenumbruch Java Basics - Anfänger-Themen 7
H Eintrag aus ArrayList entfernen Java Basics - Anfänger-Themen 7
M Properties Eintrag löschen, welcher in der JList "ausgewählt" wurde Java Basics - Anfänger-Themen 2
D OpenCSV Fehllender Konstruktor trotz import und Buildpath Eintrag Java Basics - Anfänger-Themen 1
C OOP Aus Vektor zufällig einen Eintrag wählen und in Array[][] schreiben Java Basics - Anfänger-Themen 5
B Frage zu Eintrag in txt Java Basics - Anfänger-Themen 2
B Ersten Eintrag aus einer Map bekommen Java Basics - Anfänger-Themen 11
A Eintrag einer JLIST speichern Java Basics - Anfänger-Themen 3
K Registry - Eintrag Java Basics - Anfänger-Themen 23
G Es wird immer nur der Eintrag in der Text Area angezeit Java Basics - Anfänger-Themen 6
K classpath eintrag funktioniert nicht Java Basics - Anfänger-Themen 8
M log-Eintrag Java Basics - Anfänger-Themen 7
T Eintrag aus Array löschen Java Basics - Anfänger-Themen 9
F [Map] Eintrag gezielt verändern Java Basics - Anfänger-Themen 3
M Systray Eintrag auch nach Neustart Java Basics - Anfänger-Themen 5
G TreeMap vom 1. bis letzte eintrag durchgehen Java Basics - Anfänger-Themen 17
K Startmenu Eintrag erstellen per Code Java Basics - Anfänger-Themen 3
E HSQLDB Datenbank Eintrag Java Basics - Anfänger-Themen 11
NightmareVirus Java zaubert einen Eintrag herbei :confused: Java Basics - Anfänger-Themen 2
A Wie Eintrag über AbstractListModel aus Vector entfernen? Java Basics - Anfänger-Themen 2
S Table Eintrag ,problem mit public boolean containsKey Java Basics - Anfänger-Themen 7
F Class-Path Eintrag in Manifest Java Basics - Anfänger-Themen 6
R Abfragen, ob schon ein Eintrag in der HashMap steht Java Basics - Anfänger-Themen 11
V JList(s) leer sobald ein Eintrag in 2+ Listen gewählt wird Java Basics - Anfänger-Themen 3
J Hashmap enthält immer nur den zuletzt zugeordneten Eintrag Java Basics - Anfänger-Themen 6
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
R Liste und Arrays Java Basics - Anfänger-Themen 12
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
M Verkettete Liste Java Basics - Anfänger-Themen 1
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
E Elemente aus Liste entfernen und hinzufügen Java Basics - Anfänger-Themen 3
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
E Suchfunktion in einer Liste Java Basics - Anfänger-Themen 39
T ungeordnete Werte-Paare in einer Liste Java Basics - Anfänger-Themen 7
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
berserkerdq2 Warum soll ich shuffle nutzen, um bei Rückgabewert Collection eine Liste zurückzugeben? Java Basics - Anfänger-Themen 3
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
f3mys Objektwerte in Liste speichern und wieder abrufen Java Basics - Anfänger-Themen 23
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
K Warum ist die binäre Suche bei der verketteten Liste nicht so effektiv? Java Basics - Anfänger-Themen 3
I 2D-Array Position der Liste ausgeben. Java Basics - Anfänger-Themen 2
I Liste von Infos von einer eigenen Annotation in Liste speichern Java Basics - Anfänger-Themen 0
P Doppelte werte in einer Liste zählen Java Basics - Anfänger-Themen 11
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
Igig1 Autoparkplatz verkettete Liste erstes und letztes Auto Java Basics - Anfänger-Themen 13
thor_norsk Verkette Liste Java Basics - Anfänger-Themen 27
R Rückgabe: verkettete Liste Java Basics - Anfänger-Themen 2
R einfach verkettete Liste Java Basics - Anfänger-Themen 1
R einfach verkettete Liste Java Basics - Anfänger-Themen 12
O Doppelt verkette Liste Element löschen Java Basics - Anfänger-Themen 15
B GUI extension mit einer Liste verbinden Java Basics - Anfänger-Themen 1
B Verkettete Liste durchgehen und einzelne Elemente in neue Liste tun Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
M Java Liste streamen Java Basics - Anfänger-Themen 10
AmsananKING Aussortierung einer Liste Java Basics - Anfänger-Themen 8
A Objekte mit Parametern in eine Liste packen Java Basics - Anfänger-Themen 19
A Korrigierte <String> Liste zurückgeben Java Basics - Anfänger-Themen 22
S Kann nicht auf die Liste zugreifen mit der Methode!? Java Basics - Anfänger-Themen 3
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
I Liste gruppieren nach Monat? Java Basics - Anfänger-Themen 5
districon Element in Liste einfügen Java Basics - Anfänger-Themen 1
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
Y Knoten an einem gegebenen Index aus einer Liste entfernen. Java Basics - Anfänger-Themen 6
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
Gaudimagspam Linked Liste Java Basics - Anfänger-Themen 4
Z Liste umkehren Java Basics - Anfänger-Themen 1
S Eine Liste kopieren Java Basics - Anfänger-Themen 13
java3690 Java- liste füllen ud die werte addieren Java Basics - Anfänger-Themen 13
java3690 Liste mit zufälligen zahlen füllen Java Basics - Anfänger-Themen 27
java3690 eine liste sortieren Java Basics - Anfänger-Themen 12
J Element aus Liste nehmen Java Basics - Anfänger-Themen 3
B JUnit 4: Wie man die eigene Liste testen kann [TDD] Java Basics - Anfänger-Themen 46
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben