Advertisement
Mouamle

TG History Histogram

Sep 12th, 2019
387
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.26 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.File;
  3. import java.io.FileReader;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Calendar;
  6. import java.util.Date;
  7. import java.util.HashMap;
  8. import java.util.Map;
  9.  
  10. public class Parser {
  11.  
  12.  
  13.     public static void main(String[] args) throws Exception {
  14.         File file = new File("history.txt");
  15.         BufferedReader reader = new BufferedReader(new FileReader(file));
  16.  
  17.         SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
  18.  
  19.         final Map<String, Integer> dayHourMap = new HashMap<>();
  20.  
  21.         String line;
  22.         while ((line = reader.readLine()) != null) {
  23.             if (line.matches("[0-9][0-9]\\.[0-9][0-9]\\.[0-9][0-9][0-9]. [0-9][0-9]:[0-9][0-9]:[0-9][0-9].*$")) {
  24.                 if (!line.contains("Cupcake")) {
  25.                     continue;
  26.                 }
  27.  
  28.                 String[] split = line.split(",");
  29.                 Date date = dateFormat.parse(split[0]);
  30.  
  31.                 Calendar cal = Calendar.getInstance();
  32.                 cal.setTime(date);
  33.  
  34.                 String day = "" + cal.get(Calendar.DAY_OF_MONTH);
  35.                 String hour = "" + cal.get(Calendar.HOUR_OF_DAY);
  36.                 String dayHour = "DAY: " + day + " Hour: " + hour;
  37.                 if (!dayHourMap.containsKey(dayHour)) {
  38.                     dayHourMap.put(dayHour, 0);
  39.                 }
  40.                 dayHourMap.put(dayHour, dayHourMap.get(dayHour) + 1);
  41.             }
  42.         }
  43.  
  44.         histogram(dayHourMap);
  45.  
  46.         reader.close();
  47.     }
  48.  
  49.     private static void histogram(Map<String, Integer> map) {
  50.         map.keySet().stream().sorted().forEach(key -> {
  51.             int amount = map.get(key);
  52.             StringBuilder lines = new StringBuilder();
  53.             for (int i = 0; i < amount; i++) {
  54.                 lines.append("|");
  55.             }
  56.             lines.append(" ").append(amount);
  57.  
  58.             if (key.length() <= 14) {
  59.                 System.out.printf("%s   => %s\n", key, lines.toString());
  60.             } else if (key.length() <= 15) {
  61.                 System.out.printf("%s  => %s\n", key, lines.toString());
  62.             } else {
  63.                 System.out.printf("%s => %s\n", key, lines.toString());
  64.             }
  65.         });
  66.     }
  67.  
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement