added durchschnittszeit angabe
parent
9625a02631
commit
b4d3ee05d6
|
@ -16,12 +16,16 @@ import java.io.OutputStreamWriter;
|
|||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.DateTimeException;
|
||||
import java.time.LocalTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoField;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.Stack;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import java.time.format.DateTimeFormatterBuilder;
|
||||
import de.hs_mannheim.informatik.mvn.gui.*;
|
||||
|
||||
public class HitoriMain2 extends JFrame implements ActionListener{
|
||||
|
@ -260,6 +264,38 @@ public class HitoriMain2 extends JFrame implements ActionListener{
|
|||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
}
|
||||
|
||||
public static JLabel getAvgTime(byte[] data, String filename) throws IOException {
|
||||
String text = "Durchschnittszeit: ";
|
||||
int totalSeconds = 0;
|
||||
int count = 0;
|
||||
try (BufferedReader reader = new BufferedReader(
|
||||
new InputStreamReader(new ByteArrayInputStream(data), StandardCharsets.UTF_8))) {
|
||||
String line;
|
||||
DateTimeFormatter dtf = new DateTimeFormatterBuilder()
|
||||
.appendPattern("mm:ss") // we only have minutes and seconds
|
||||
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0) // default hour = 0
|
||||
.toFormatter();
|
||||
while ((line = reader.readLine()) != null) {
|
||||
line = line.trim();
|
||||
if (line.isEmpty()) continue;
|
||||
String[] parts = line.split("\\s+", 2);
|
||||
String timePart = parts[0];
|
||||
LocalTime localTime = LocalTime.parse(timePart, dtf);
|
||||
int minutes = localTime.getMinute();
|
||||
int seconds = localTime.getSecond();
|
||||
int totalSecThisLine = minutes * 60 + seconds;
|
||||
totalSeconds += totalSecThisLine;
|
||||
count++;
|
||||
}
|
||||
int timeInt = totalSeconds/count;
|
||||
int minutes = timeInt/60;
|
||||
int seconds = timeInt%60;
|
||||
String time= minutes+":"+seconds;
|
||||
JLabel avgTime = new JLabel(text + time);
|
||||
return avgTime;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class HighscoreEintrag {
|
||||
|
|
|
@ -138,6 +138,8 @@ public class HighscoreGUI extends JFrame implements ActionListener {
|
|||
}
|
||||
}
|
||||
highscorePanel1.add(entryPanel, BorderLayout.CENTER);
|
||||
JLabel avgTime = HitoriMain2.getAvgTime(data, filename);
|
||||
highscorePanel1.add(avgTime, BorderLayout.NORTH);
|
||||
} else {
|
||||
JLabel text = new JLabel("Noch kein Highscore eingetragen.");
|
||||
highscorePanel1.add(text, BorderLayout.CENTER);
|
||||
|
|
Loading…
Reference in New Issue