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:
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();
}
}