Java - l oop через файл csv, проверяющий отсутствие показаний счетчика на основе метки времени - PullRequest
0 голосов
/ 05 августа 2020

У меня есть файл csv, полный показаний счетчика за целый месяц - 24 показания счетчика в день, если быть точным. Теперь я хочу проверить, действительно ли есть 24 показания счетчика в день, потому что каким-то образом некоторые пропадают.

Мой код:

public class CSVReader {

    public static void main(String[]args) {

        String csvFile = "data.csv";
        BufferedReader br = null;
        String line = "";
        String cvsSplitBy = ";";

        try {

            br = new BufferedReader(new FileReader(csvFile));
            while ((line = br.readLine()) != null) {
                
                String[]text = line.split(cvsSplitBy);
                System.out.println(text[0]);

            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

Считыватель уже готов. Теперь я застрял на программировании l oop для проверки, есть ли пробел на временной шкале.

2020-07-30 00:00:00
2020-07-30 01:00:00
2020-07-30 02:00:00
2020-07-30 03:00:00
2020-07-30 04:00:00
2020-07-30 05:00:00
2020-07-30 06:00:00
2020-07-30 07:00:00
2020-07-30 08:00:00
2020-07-30 09:00:00
2020-07-30 10:00:00
2020-07-30 11:00:00
2020-07-30 12:00:00
                        <- missing meter reading at 13:00:00
2020-07-30 14:00:00
2020-07-30 15:00:00
2020-07-30 16:00:00
2020-07-30 17:00:00
2020-07-30 18:00:00
2020-07-30 19:00:00
2020-07-30 20:00:00
2020-07-30 21:00:00
2020-07-30 22:00:00
2020-07-30 23:00:00

Моя цель - получить своего рода обзор всего этого файла в консоли или в внешний файл .txt, если что-то пропало.

Например, вывод: 2020-07-30: missing meter reading at 13:00:00

Таким образом, каждый день следует указывать, где некоторые измерения отсутствуют, и в то время, когда отсутствуют . Я надеюсь, что я объяснил свою проблему, а также я надеюсь, что есть кто-то, кто может мне помочь.

Кроме того, вот несколько примеров временных меток в моем файле для целей тестирования:

2020-07-29 00:00:00
2020-07-29 01:00:00
2020-07-29 02:00:00
2020-07-29 03:00:00
2020-07-29 04:00:00
2020-07-29 05:00:00
2020-07-29 06:00:00
2020-07-29 07:00:00
2020-07-29 08:00:00
2020-07-29 10:00:00
2020-07-29 11:00:00
2020-07-29 12:00:00
2020-07-29 13:00:00
2020-07-29 14:00:00
2020-07-29 15:00:00
2020-07-29 16:00:00
2020-07-29 17:00:00
2020-07-29 18:00:00
2020-07-29 19:00:00
2020-07-29 20:00:00
2020-07-29 22:00:00
2020-07-29 23:00:00
2020-07-30 00:00:00
2020-07-30 01:00:00
2020-07-30 02:00:00
2020-07-30 03:00:00
2020-07-30 04:00:00
2020-07-30 05:00:00
2020-07-30 06:00:00
2020-07-30 07:00:00
2020-07-30 08:00:00
2020-07-30 09:00:00
2020-07-30 10:00:00
2020-07-30 11:00:00
2020-07-30 12:00:00
2020-07-30 13:00:00
2020-07-30 14:00:00
2020-07-30 15:00:00
2020-07-30 16:00:00
2020-07-30 17:00:00
2020-07-30 18:00:00
2020-07-30 19:00:00
2020-07-30 20:00:00
2020-07-30 21:00:00
2020-07-30 22:00:00
2020-07-30 23:00:00
2020-07-31 00:00:00
2020-07-31 01:00:00
2020-07-31 02:00:00
2020-07-31 03:00:00
2020-07-31 05:00:00
2020-07-31 06:00:00
2020-07-31 07:00:00
2020-07-31 08:00:00
2020-07-31 09:00:00
2020-07-31 10:00:00
2020-07-31 11:00:00
2020-07-31 13:00:00
2020-07-31 14:00:00
2020-07-31 15:00:00
2020-07-31 16:00:00
2020-07-31 17:00:00
2020-07-31 18:00:00
2020-07-31 19:00:00
2020-07-31 20:00:00
2020-07-31 21:00:00
2020-07-31 22:00:00
2020-07-31 23:00:00
2020-08-01 00:00:00
2020-08-01 01:00:00

1 Ответ

2 голосов
/ 05 августа 2020

...

int count = 24;
while((line=br.readLine()) != null){
  String[] text = line.split(cvsSplitBy);
  if(text[0] != null && text[0].length > 1){
    System.out.println(text[0]);
    counter--;
  } else {
    System.out.println("MISSING ENTRY");
  }
}

System.out.println("Missing entries: " + counter);

...

Я придумываю что-то вроде этого, чтобы лучше рассмотреть. Решает ли это вашу проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...